【问题标题】:log4j: Rolling logs into .gz file with DailyRollingFileAppender using TimeBasedRollingPolicylog4j:使用 TimeBasedRollingPolicy 使用 DailyRollingFileAppender 将日志滚动到 .gz 文件中
【发布时间】:2011-11-25 04:02:28
【问题描述】:

当前系统按预期运行,日志文件按照以下逻辑每小时滚动一次:

log4j.appender.oozie=org.apache.log4j.DailyRollingFileAppender
log4j.appender.oozie.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.oozie.File=${oozie.log.dir}/oozie.log
log4j.appender.oozie.Append=true
log4j.appender.oozie.layout=org.apache.log4j.PatternLayout
log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n

我可以理解,使用 TimeBasedRollingPolicy 可以使用 RollingFileAppender(根据文件大小滚动)将日志文件直接滚动到压缩文件(.gz 或 .zip)中。我正在使用 DailyRollingFileAppender(基于时间的滚动)并希望以此实现压缩。我修改了我的属性如下。但这不起作用。

log4j.appender.oozie=org.apache.log4j.DailyRollingFileAppender
log4j.appender.oozie.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.oozie.File=${oozie.log.dir}/oozie.log
log4j.appender.oozie.Append=true
log4j.appender.oozie.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.oozie.RollingPolicy.FileNamePattern=foo.%d{yyyy-MM-dd-HH}.gz
log4j.appender.oozie.layout=org.apache.log4j.PatternLayout
log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n

任何指针将不胜感激。以下是一些相关链接。

Configuring RollingFileAppender in log4j

http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html

【问题讨论】:

  • 您找到解决方案了吗?我也看到了

标签: log4j


【解决方案1】:

请原谅我的惊讶,但在您在上面给出的确切链接中,它在接受的答案中说:

注意TimeBasedRollingPolicy只能用xml配置,不能用log4j.properties

您是否尝试过将配置重写为 XML 格式?

【讨论】:

  • 感谢您的回复。在我发布的链接中,其中一个回复说“此问题已在 log4j v1.2.16 中修复。它现在支持通过属性文件设置 rollingPolicy。issues.apache .org/bugzilla/show_bug.cgi?id=36384”。我没有尝试用 XML 重写,因为这将是一个很大的变化(需要为已经存在的具有不同滚动间隔的多个记录器重写),因此我们将尝试使用属性文件本身来实现这一点。
【解决方案2】:

请尝试以下方法,它对我有用:

log4j.rootLogger=CONSOLE,file


log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE..layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.Threshold=WARN
log4j.appender.file.Encoding=UTF-8

log4j.appender.file.File=/path to your logs/logs/log_file.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=/path to your                 logs/logs/log_file%d{yyyy-MM-dd-HH-mm-ss}.log
log4j.appender.file.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n

【讨论】:

  • 不适用于 commons-logging-1.1.1(使用 log4j.log4j:1.2.12),错误是 log4j:WARN No such property [rollingPolicy] in org.apache.log4j。滚动文件Appender。 log4j:WARN 在 org.apache.log4j.RollingFileAppender 中没有这样的属性 [datePattern]。 log4j:WARN 在 org.apache.log4j.RollingFileAppender 中没有这样的属性 [datePattern]。 log4j:WARN 在 org.apache.log4j.RollingFileAppender 中没有这样的属性 [rollingPolicy]。
猜你喜欢
  • 1970-01-01
  • 2021-03-08
  • 2016-09-28
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多