Log4j 配置某个类中某个方法的输出日志到指定文件
Posted FlyHeLanMan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("这是支付的日志");会输出到文件,并且不会在控制台输出。
以上是关于Log4j 配置某个类中某个方法的输出日志到指定文件的主要内容,如果未能解决你的问题,请参考以下文章