繁体   English   中英

Log4j的多个Appender用于相同的包

[英]Multiple Appender of Log4j for the same Package

我在多线程环境中工作,我有一个类的多个线程存在于一个包中。 我正在使用log4j进行日志记录。 现在我可以在一个文本文件中登录。 但是我想针对每个线程进行多次日志记录。 与First Thread类似,我的日志文件会有所不同,对于第二个线程,我的日志文件会有所不同,依此类推。 我搜索日志的方法是,我们只能在log4j中为一个包使用一个appender。 我们可以为一个包使用多个appender。 或者我可以用来解决我的问题的任何其他技术。 这是我的log4j属性文件

log4j.logger.com.ef.zoomanalyzer=DEBUG, Analyzer_Log

log4j.appender.Analyzer_Log=org.apache.log4j.RollingFileAppender
log4j.appender.Analyzer_Log.File=C:/AnalyzerLog/Analyzer.log
log4j.appender.Analyzer_Log.MaxFileSize=1000KB
log4j.appender.Analyzer_Log.MaxBackupIndex=10
log4j.appender.Analyzer_Log.layout=org.apache.log4j.PatternLayout  

试试:

对于log4j.xml

<appender name="APPENDER_1" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="C:/log_1.log"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} |%5p| [%c] | %m%n"/>
    </layout>
</appender>
<appender name="APPENDER_2" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="C:/log_2.log"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} |%5p| [%c] | %m%n"/>
    </layout>
</appender>
<logger name="org.java.test">
    <level value="DEBUG"/>
    <appender-ref ref="APPENDER_1"/>
</logger>
<logger name="org.java.tes">
    <level value="DEBUG"/>
    <appender-ref ref="APPENDER_2"/>
</logger>   

对于log4j.properties

log4j.appender.APPENDER_1=org.apache.log4j.FileAppender
log4j.appender.APPENDER_1.File=C:/log_1.log
log4j.appender.APPENDER_1.layout=org.apache.log4j.PatternLayout
log4j.appender.APPENDER_1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.appender.APPENDER_2=org.apache.log4j.FileAppender
log4j.appender.APPENDER_2.File=C:/log_2.log
log4j.appender.APPENDER_2.layout=org.apache.log4j.PatternLayout
log4j.appender.APPENDER_2.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.java.logger.org.java.test=,APPENDER_1, APPENDER_2 

每个线程在日志中都有自己的名称。 你不必这样做。

为了简化答案,您可以向记录器添加额外的appender

<logger name="org.java.test">
    <level value="DEBUG"/>
    <appender-ref ref="APPENDER_1"/>
    <appender-ref ref="APPENDER_2"/>
</logger>

或者只是添加appender名称

log4j.logger.com.your.package.name=APPENDER_1, APPENDER_2 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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