压缩Log4j文件

EK.*_*EK. 36 java log4j properties

是否可以压缩日志文件(我通过RollingFileAppender进行压缩)?

fas*_*seg 42

log4j extras支持:

只需将以下内容添加到RollingFileAppender配置中,文件名以.gz结尾即可自动压缩日志文件:

<appender...>
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
    </rollingPolicy>
</appender>
Run Code Online (Sandbox Code Playgroud)

在这里查看javadoc中的一些细节:

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

希望有所帮助

  • 请注意,您必须使用`org.apache.log4j.rolling.RollingFileAppender`(来自log4j-extras),而不是`org.apache.log4j.RollingFileAppender`(来自log4j)! (13认同)
  • 如何将其添加到属性文件中?>`log4j.appender.DefaultLog = org.apache.log4j.RollingFileAppender log4j.appender.DefaultLog.File = $ {mailbox.root} /logs/application.log log4j.appender.DefaultLog.MaxFileSize = 50MB log4j.appender.DefaultLog. MaxBackupIndex = 100 log4j.appender.DefaultLog.layout = org.apache.log4j.PatternLayout log4j.appender.DefaultLog.layout.ConversionPattern =%d%p [%c] - %m%n` (12认同)

Dar*_*ren 16

我找到了这个很好的答案,但后来又一直在调查,log4j 2已经出来了!

现在你可以使用基本库进行压缩了,还有更多......它真棒!

RollingFileAppender - 我正在寻找具有timeBased和sizeBased滚动的东西,并且压缩......它有两个!我可以删除我的syslog4j库,因为它也有它!

除非你真的需要,否则请不要使用log4j 1.2 +额外内容.


Rom*_*eau 5

我知道这并不能完全回答您的问题,但它确实提出了替代解决方案。

我们处理这个问题的方法是在一天结束时运行一个批处理程序,将任何先前的日志文件压缩到今天的日期,删除一周之前的任何日志文件,然后将它们复制到另一个文件服务器。这样,应用程序不需要消耗任何 CPU 周期来执行此操作,并且在服务器上我们有不超过一周的日志,在另一个文件服务器上我们有旧日志文件。