配置Rolling File Appender

时间:2010-04-01 11:33:44

标签: jboss log4j

我的名为jboss-log4j.xml的jboss应用程序服务器日志文件具有滚动文件appender的以下配置

<appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
 <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
 <param name="File" value="${jboss.server.log.dir}/server.log"/>
 <param name="Append" value="false"/>
 <param name="MaxFileSize" value="500KB"/>
 <param name="MaxBackupIndex" value="1"/>

 <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
 </layout>      
</appender>

这究竟是做什么的? 我该如何设置它来做这两件事中的任何一件? 1.删​​除超过5天的日志或 2.删除超过800MB的日志,这样一旦删除它们,新日志就会生效

2 个答案:

答案 0 :(得分:3)

我链接到您之前的问题here的手册中解释了大多数参数。即使它显示属性文件中的参数,参数的名称和语义也是相同的。

AFAIK你不能轻易地每5天翻一次日志文件。最接近这一点的是每周翻转。为此,您应该使用我在上一个答案中显示的DailyRollingFileAppender,并将其日期模式设置为

<param name="DatePattern" value="'.'yyyy-ww"/>

查看DailyRollingFileAppender here的使用选项。

将帖子中显示的RollingFileAppender的大小限制设置为800MB而不是500KB是我确定您可以自行解决的任务; - )

因此,在达到指定的大小限制时,您可以轻松地在每周开头的 上滚动日志文件。但是,我有一个含糊不清的回忆,两者并没有在一起。您有DailyRollingFileAppenderRollingFileAppender - Log4J不会同时提供带有两个功能的appender。既不是每5天翻转一次您的日志文件 - 实现此目的的唯一选择是实现您自己的自定义appender。

答案 1 :(得分:1)

您询问如何删除超过5天的日志。通常,我们将设置一个cron作业,该作业使用find删除旧日志文件和不太旧的zip文件。例如:

find /apps/atg/$JBOSS_VERSION/jboss-as/server/${inst_name}/log \
  -name "*.log.2*" -type f -mtime +14 -exec rm {} \;
find /apps/atg/$JBOSS_VERSION/jboss-as/server/${inst_name}/log \
  -name "*.log.2*" ! -name "*.gz" -type f -mtime +3 -exec gzip {} \;