![](/img/trans.png)
[英]How to configure log4j to log different log levels to different files for the same logger
[英]Log into different files with the same logger with Log4j
我有一个类“ Example.class”。 我得到我的记录仪:
private final Logger log = Logger.getLogger(Example.class);
我的log4j.properties看起来像:
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.txt
log4j.appender.file.MaxFileSize=1024KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n
我的班级通过log.info(..),log.debug(..)等记录到文件log.txt中 。
现在我想为同一个类使用不同的记录器,例如:
private final Logger differentLogger = Logger.getLogger(Example.class);
例如,该记录器应登录到其他文件
differentLogger.info("Hello World");
//writes 'Hello World' into differentLogFile.txt
这有可能吗?
不,类别标识记录器。
也就是说,您不必强制使用类作为类别。 您可以在同一课程中使用:
private final Logger log = Logger.getLogger(Example.class);
private final Logger differentLogger = Logger.getLogger(mylogs.different);
之后,您可以在配置文件中定义多个附加程序,并将每个类别分配给不同的附加程序。
两次调用Logger.getLogger(Example.class)
将返回Logger
的相同或不可区分的实例。 这意味着Log4J不能在它们之间进行任何区分,它们将始终位于同一文件中。
解决方案很明显:使用其他记录器!
Logger differentLogger = Logger.getLogger("differentLogger");
并将log4j.xml
配置为对differentLogger
使用不同的附加程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.