配置slf4j/log4j输出到不同的文件

在实际中,我们可能想要将不同类型的日志分类输出到不同的文件中。
关于 log4j 的配置参数解释可以参考:
slf4j使用log4j的配置参数:
https://blog.****.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 个文件中:
配置slf4j/log4j输出到不同的文件