配置slf4j/log4j輸出到不同的檔案
阿新 • • 發佈:2018-12-16
在實際中,我們可能想要將不同型別的日誌分類輸出到不同的檔案中。
關於 log4j 的配置引數解釋可以參考:
slf4j使用log4j的配置引數:
https://blog.csdn.net/yx0628/article/details/83214387
下面舉個例子,比如我們可以進行類似以下的配置:
將 demo1.log ,demo2.log , demo3.log
system.logPath=D:/logs/ log4j.rootLogger=INFO,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.demo1=INFO,demo1 log4j.appender.demo1=org.apache.log4j.DailyRollingFileAppender log4j.appender.demo1.File=${system.logPath}/demo1.log log4j.appender.demo1.DatePattern='.'yyyy-MM-dd log4j.appender.demo1.layout=org.apache.log4j.PatternLayout log4j.appender.demo1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} INFO - %m%n log4j.logger.demo2=INFO,demo2 log4j.appender.demo2=org.apache.log4j.DailyRollingFileAppender log4j.appender.demo2.File=${system.logPath}/demo2.log log4j.appender.demo2.DatePattern='.'yyyy-MM-dd log4j.appender.demo2.layout=org.apache.log4j.PatternLayout log4j.appender.demo2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} INFO - %m%n log4j.logger.demo3=INFO,demo3 log4j.appender.demo3=org.apache.log4j.DailyRollingFileAppender log4j.appender.demo3.File=${system.logPath}/demo3.log log4j.appender.demo3.DatePattern='.'yyyy-MM-dd log4j.appender.demo3.layout=org.apache.log4j.PatternLayout log4j.appender.demo3.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} INFO - %m%n
在程式中,我們配置對應 logger 時,通過宣告的 demo1 ,demo2 ,demo3 來獲取 logger 物件。
public class LogTest {
private static Logger alogger = LoggerFactory.getLogger("demo1");
private static Logger blogger = LoggerFactory.getLogger("demo2");
private static Logger clogger = LoggerFactory.getLogger("demo3");
public static void main(String[] args) throws IOException {
alogger.info("aaaaaaa");
blogger.info("bbbbbbb");
clogger.info("ccccccc");
}
}
輸出結果在 3 個檔案中: