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("这是支付的日志");会输出到文件,并且不会在控制台输出。

  • 相关阅读:
    计算机网络原理 课后题7
    计算机网络原理 课后题6
    计算机网络原理 课后题5
    计算机网络原理 课后题4
    计算机网络原理 课后题3
    计算机网络原理 课后题2
    计算机网络原理 课后题1
    C#学习——条件判断(三)
    C#学习——循环结构(二)
    python3.7版本安装Ride
  • 原文地址:https://www.cnblogs.com/FlyHeLanMan/p/7682597.html
Copyright © 2011-2022 走看看