繁体   English   中英

使用Weld CDI时配置log4j

[英]Configure log4j when using Weld CDI

我想以编程方式调整我的日志文件位置。 因此,我想覆盖log4j.properties文件中的默认值。 这与我正在使用LogManager.resetConfiguration()PropertyConfigurator.configure(props)以便我的文件位置被更新(存储在props中)没有任何问题。 此方法有效,从此刻开始将日志文件写入新文件位置。

使用Weld时发生我的问题。 这是由于Weld内部也在使用记录器这一事实,在我的记录文件中已指出: 2014-08-13 12:55:15.589 [main:0] DEBUG Weld.java:84 Method: <clinit> - Logging Provider: org.jboss.logging.Log4jLoggerProvider

由于我使用org.jboss.weld.environment.se.StartMain作为主类,因此对Weld的日志记录功能没有任何影响。 现在,我在2个不同的位置上得到了3个日志文件(如我的log4j.properties中所述)。 其中一个包含一些Weld调试信息,另一个包含从初始化到以后的所有日志记录信息。

因此,从逻辑上讲,我想只以1个包含日志文件的目录结束,因此Weld会调整为新的log4j文件位置。 或者让log4j复制旧的日志记录内容,使用旧的内容创建新的日志记录文件+并删除旧的日志记录文件。

我不想使用VM参数,因为我需要以编程方式分配日志记录位置。

在这种情况下,解决方案是使用slf4j。 请参阅桥接旧版API

桥接所有日志记录之后,可以使用slf4j-to-log4j将所有日志记录定向到您的log4j设置。

暂无
暂无

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

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