gpt4 book ai didi

java - 在 log4j 中配置 RollingFileAppender

转载 作者:IT老高 更新时间:2023-10-28 20:44:42 31 4
gpt4 key购买 nike

我正在开发一组网络服务,我们希望有一个每日轮换日志。

我正在尝试从 log4j extras 伴侣中获取 org.apache.log4j.rolling.RollingFileAppender,因为文档表明这最适合生产环境。

我同时拥有主 log4J 库 (log4j-1.2.15.jar) 和 log4j extras 库 (apache-log4j-extras-1.1.jar)类路径。

我在 log4j.properties 文件中对 appender 进行了以下配置:

### SOAP Request Appender
log4j.appender.request=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.request.File=SOAPmessages.log
log4j.appender.request.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.request.RollingPolicy.ActiveFileName =SOAPmessages-%d.log
log4j.appender.request.RollingPolicy.FileNamePattern=SOAPmessages-%d.log.zip
log4j.appender.request.layout = org.apache.log4j.PatternLayout
log4j.appender.request.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

但是,当我在 Debug模式下使用 log4j 启​​动 Web 服务时,我收到以下错误消息:

log4j: Parsing appender named "request".
log4j: Parsing layout options for "request".
log4j: Setting property [conversionPattern] to [%d{ABSOLUTE} %5p %c{1}:%L - %m%n].
log4j: End of parsing for "request".
log4j: Setting property [file] to [/logs/SOAPmessages.log].
log4j:WARN Failed to set property [rollingPolicy] to value "org.apache.log4j.rolling.TimeBasedRollingPolicy".
log4j:WARN Please set a rolling policy for the RollingFileAppender named 'request'
log4j: Parsed "request" options.

我发现有关如何配置此附加程序的文档有点少,所以谁能帮我修复我的配置?

EDIT0:添加了 Debug模式输出,而不仅仅是标准警告

最佳答案

我有一个类似的问题,只是找到了解决它的方法(通过单步执行 log4j-extras 源代码,不少...)

好消息是,与随处可见的内容不同,事实证明,您实际上可以使用 log4j.properties 配置 TimeBasedRollingPolicy(不需要 XML 配置!至少在 log4j >1.2.16 的版本中)看到这个bug report)

这是一个例子:

log4j.appender.File = org.apache.log4j.rolling.RollingFileAppender
log4j.appender.File.rollingPolicy = org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.File.rollingPolicy.FileNamePattern = logs/worker-${instanceId}.%d{yyyyMMdd-HHmm}.log

顺便说一句,${instanceId} 位是我在 Amazon 的 EC2 上用来区分日志和所有工作人员的东西——我只需要在调用 PropertyConfigurator.configure 之前设置该属性(),如下:

p.setProperty("instanceId", EC2Util.getMyInstanceId());
PropertyConfigurator.configure(p);

关于java - 在 log4j 中配置 RollingFileAppender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5117758/

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