我的名为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的日志,这样一旦删除它们,新日志就会生效
答案 0 :(得分:3)
我链接到您之前的问题here的手册中解释了大多数参数。即使它显示属性文件中的参数,参数的名称和语义也是相同的。
AFAIK你不能轻易地每5天翻一次日志文件。最接近这一点的是每周翻转。为此,您应该使用我在上一个答案中显示的DailyRollingFileAppender
,并将其日期模式设置为
<param name="DatePattern" value="'.'yyyy-ww"/>
查看DailyRollingFileAppender
here的使用选项。
将帖子中显示的RollingFileAppender
的大小限制设置为800MB而不是500KB是我确定您可以自行解决的任务; - )
因此,在达到指定的大小限制时,您可以轻松地在每周或开头的 上滚动日志文件。但是,我有一个含糊不清的回忆,两者并没有在一起。您有DailyRollingFileAppender
或RollingFileAppender
- 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 {} \;