【发布时间】:2018-12-07 11:17:48
【问题描述】:
我正在将我们服务器上的记录器配置为每天压缩日志。我还需要确保单个日志文件不会变得太大(比如每个文件 10MB)。
都没有工作,但首先我想解决文件大小的问题。
这是我的 log4j.properties 文件:
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.rollingPolicy.fileNamePattern=./log/logging.%d.log.zip
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=1000000
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我们使用 log4j 1.2.17,现在我添加了相同版本的 log4j extras。
当我测试日志时,它会创建任意大文件。我尝试使用 maxFileSize 和 MaxFileSize 代替 maxFileSize,使用“10MB”代替数字,但没有任何效果。
我也尝试过以编程方式设置属性,虽然这会使事情变得困难,因为我们有很多使用记录器的类。
但这也没有用。事实证明,我的 Logger 实例(?)中没有 Appender。这是我的代码:
logger = Logger.getLogger(LogTest.class);
// RollingFileAppender app = (RollingFileAppender) logger.getAppender("file");
// app.setMaxFileSize("1000000");
Enumeration allAppenders = logger.getAllAppenders();
System.out.println(allAppenders);
for (Enumeration<Object> iter = allAppenders; iter.hasMoreElements();) {
Object elem = iter.nextElement();
System.out.println(elem);
}
输出为空枚举:
org.apache.log4j.helpers.NullEnumeration@1161fded
我没有找到另一个对我的问题有用的帖子。有什么想法吗?
【问题讨论】: