繁体   English   中英

使用Log4j使用同一记录器登录到不同文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM