1. 程式人生 > >配置slf4j/log4j輸出到不同的檔案

配置slf4j/log4j輸出到不同的檔案

在實際中,我們可能想要將不同型別的日誌分類輸出到不同的檔案中。
關於 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 個檔案中:
輸出結果檔案