gpt4 book ai didi

java - log4j 将一些日志重定向到单独的文件

转载 作者:行者123 更新时间:2023-12-02 13:14:29 25 4
gpt4 key购买 nike

我有一个使用 log4j 的 tomcat java web 应用程序。我可以在 log4j 中指定某些属性来重定向特定包类的日志,以将文件与其他文件分开。

谢谢!

最佳答案

例如,两个包的日志文件是:

com.abhi.packageOne;  ->  packageOneFile.log
com.abhi.packageTwo; -> packageTwoFile.log

将 rootLogger 添加为文件或控制台。您可以根据您的要求保留任何日志级别,即跟踪、信息、错误等

log4j.rootLogger=Debug, file

您必须为两个包创建两个新的附加程序

log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.File=/path/main.log
log4j.appender.MAIN_LOG.layout=org.apache.log4j.PatternLayout

log4j.appender.PACKAGE_ONE=org.apache.log4j.RollingFileAppender
log4j.appender.PACKAGE_ONE.File=/path/packageOneFile.log
log4j.appender.PACKAGE_ONE.layout=org.apache.log4j.PatternLayout

log4j.appender.PACKAGE_TWO=org.apache.log4j.RollingFileAppender
log4j.appender.PACKAGE_TWO.File=/path/packageTwoFile.log
log4j.appender.PACKAGE_TWO.layout=org.apache.log4j.PatternLayout

您需要相应地设置可加性。

什么是成瘾?

为了避免日志中的冗余,我们可以使用Log4j可加性。只需将 Log4j 记录器的 additivity 属性设置为 false,然后传入该记录器的日志消息将不会传播到其父记录器。因此,我们的新 Log4j 配置文件将是:

log4j.additivity.com.abhi.packageOne=false
log4j.additivity.com.abhi.packageTwo=false

log4j.logger.com.abhi.packageOne=DEBUG, PACKAGE_ONE
log4j.logger.com.abhi.packageTwo=DEBUG, PACKAGE_TWO

log4j.rootLogger=DEBUG, MAIN_LOG

其中 MAIN_LOG 是您的常规日志文件。如果您还想在 MAIN_LOG 中打印 PACKAGE_ONE 和 PACKAGE_TWO 的日志,请包含以下行。

log4j.rootLogger=DEBUG, MAIN_LOG , PACKAGE_ONE , PACKAGE_TWO

关于java - log4j 将一些日志重定向到单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com