zoukankan      html  css  js  c++  java
  • Log4j 配置某个类中某个方法的输出日志到指定文件

    我们在项目中使用log4j开发的时候,会遇到一些特殊的情况,比如:要输出某个类中某个方法的日志信息到文件中,方便以后查看

    可以使用如下配置:

    复制代码
    log4j.rootLogger=info,stdout
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
    log4j.appender.stdout.encoding=UTF-8
    
    log4j.logger.payInfo=info,payInfo
    log4j.additivity.payInfo=false 
    log4j.appender.payInfo=org.apache.log4j.FileAppender
    log4j.appender.payInfo.layout=org.apache.log4j.PatternLayout
    log4j.appender.payInfo.File=d:/log4j.txt  
    复制代码

    其中stdout是指输出到控制台的配置。

    log4j.logger.payInfo=info,payInfo 是自定义的一个logger

    log4j.additivity.payInfo=false  指定该logger不会使用父logger的配置,也就是说不会在console输出。

    代码中使用如下:

    复制代码
    @Controller
    @RequestMapping("pay")
    public class PayController extends BaseController{
    
        Logger payLogger = Logger.getLogger("payInfo");
        
        Logger infoLogger = Logger.getLogger(PayController.class);
        
        @RequestMapping("test")
        public void test(HttpServletRequest request, HttpServletResponse response){
            t2();
            payLogger.info("这是支付的日志");
        }
        private void t2(){
            infoLogger.info("这是info的日志");
        }
    }
    复制代码

    Logger payLogger = Logger.getLogger("payInfo"); 这里是获取自定义的logger

    Logger infoLogger = Logger.getLogger(PayController.class); 这里获取到的就是父logger

    方法执行之后会在控制台输出infoLogger.info("这是info的日志");的内容,

    而payLogger.info("这是支付的日志");会输出到文件,并且不会在控制台输出。

  • 相关阅读:
    bootstrap学习(全局CSS样式)(二)
    第八周
    bootstrap学习(全局CSS样式)(一)
    变量的解构赋值 ES6
    ES6的let和const命令
    github之怎么上传本地项目
    浅谈js对象及对象属性
    解决sublime text3 文件名,小框框的办法
    web04--cookie
    web03--session
  • 原文地址:https://www.cnblogs.com/xiaoshen666/p/11004969.html
Copyright © 2011-2022 走看看