log4j2輸出日志信息到指定文件


我們在項目中使用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輸出。

代碼中使用如下:

 1     @Controller
 2     @RequestMapping("pay")
 3     public class PayController extends BaseController{
 4      
 5         Logger payLogger = Logger.getLogger("payInfo");
 6      
 7         Logger infoLogger = Logger.getLogger(PayController.class);
 8      
 9         @RequestMapping("test")
10         public void test(HttpServletRequest request, HttpServletResponse response){
11             t2();
12             payLogger.info("這是支付的日志");
13         }
14         private void t2(){
15             infoLogger.info("這是info的日志");
16         }
17     }

 

Logger payLogger = Logger.getLogger("payInfo"); 這里是獲取自定義的logger

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

方法執行之后會在控制台輸出infoLogger.info("這是info的日志");的內容,

而payLogger.info("這是支付的日志");會輸出到文件,並且不會在控制台輸出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM