首页 > 解决方案 > JAVA:当日志文件要翻转时在应用程序中暂停

问题描述

我正在使用 Wildfly 9 和 slf4j(slf4j-api-1.7.21.jar)/log4j(log4j-1.2.17.jar)。当文件要翻转时,我在应用程序中暂停。

我在standalone.xml 中的日志配置如下:

<subsystem xmlns="urn:jboss:domain:logging:3.0">
    <console-handler name="CONSOLE">
        <level name="INFO" />
        <formatter>
            <named-formatter name="COLOR-PATTERN" />
        </formatter>
    </console-handler>
    <size-rotating-file-handler name="FILE" autoflush="true">
        <formatter>
            <named-formatter name="PATTERN" />
        </formatter>
        <file relative-to="jboss.server.log.dir" path="server.log" />
        <rotate-size value="30m" />
        <max-backup-index value="10000" />
        <append value="true" />
    </size-rotating-file-handler>
    <size-rotating-file-handler name="APPLICATION" autoflush="true">
        <formatter>
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %m%n" />
        </formatter>
        <file relative-to="jboss.server.log.dir" path="application.log" />
        <rotate-size value="30m" />
        <max-backup-index value="10000" />
        <append value="true" />
    </size-rotating-file-handler>
    <logger category="com.company" use-parent-handlers="true">
        <level name="INFO" />
        <handlers>
            <handler name="APPLICATION" />
        </handlers>
    </logger>
    <root-logger>
        <level name="INFO" />
        <handlers>
            <handler name="CONSOLE" />
            <handler name="FILE" />
        </handlers>
    </root-logger>
    <formatter name="PATTERN">
        <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n" />
    </formatter>
    <formatter name="COLOR-PATTERN">
        <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n" />
    </formatter>
</subsystem>

对此问题有任何建议/配置吗?

标签: javalogginglog4jslf4jwildfly-9

解决方案


简单的建议:降低max-backup-index到较低的值。

max-backup-index=10000意味着在翻转时,日志框架必须:

  • 删除server-9999.log
  • 重命名server-9998.logserver-9999.log
  • 重命名server-9997.logserver-9998.log
  • ...
  • 重命名server.logserver-1.log

只有这样它才能创建一个新的server.log


推荐阅读