如何设置 Wildfly 服务器日志的最大大小

Posted

技术标签:

【中文标题】如何设置 Wildfly 服务器日志的最大大小【英文标题】:How to set the max size of the Wildfly server log 【发布时间】:2016-02-08 18:04:05 【问题描述】:

我们的生产系统中有Wildfly 在域模式下运行。大约有 10 台 Web 服务器,并且所有 10 台服务器都只有日志文件。日志文件位于/var/log/wildfly/wildfly.log 文件下。我上次检查时,文件大约 5 GB。我的问题是:

    有什么方法可以分离服务器日志,让每个服务器都有自己的日志文件? 有没有办法将日志文件设置为最大大小限制以防止过度增长? 有什么方法可以删除日志文件并重新开始?两天前的日志对我来说没用,所以日志文件中的大部分数据都是多余的。

注意

【问题讨论】:

【参考方案1】:

对于 (1) 我不确定 - 是否安装了此操作系统?我没有那个文件,但我只是解压缩 tarball。

对于 (2) 和 (3),我认为在 domain/configuration/domain.xmlstandalone/configuration/standalone.xml 中查找适当的(“默认”?)periodic-rotating-file-handler 并添加,例如:

<rotate-size value="20k"/> <!-- Limit on size of file -->
<max-backup-index value="1"/> <!-- Number of log files to keep -->

【讨论】:

谢谢。操作系统是Ubuntu Server。我会检查domain.xml 并尝试参数。 比起更改 XML,更喜欢使用 CLI 或 Web 控制台。 rotate-sizemax-backup-index 用于size-rotating-file-handler 而不是periodic-rotating-file-handler。另请注意,这些应该进入每个服务器的日志文件。如果不是,则某些内容已被覆盖。让多个服务器同时写入同一个文件是个坏主意。【参考方案2】:

    创建size-rotating-file-handler

        <size-rotating-file-handler name="FILE_SIZE">
            <level name="DEBUG"/>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <rotate-size value="1m"/> <!-- the size, could be 100k, 10m etc-->
            <max-backup-index value="5"/> <!-- backup index, default is 1, please set it to a large number -->
            <append value="true"/>
        </size-rotating-file-handler>
    

    使用创建的处理程序

        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
                <handler name="FILE_SIZE"/> <!-- this is what you need to add -->
            </handlers>
        </root-logger>
    

【讨论】:

以上是关于如何设置 Wildfly 服务器日志的最大大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Docker 容器内为 Wildfly 设置堆大小?

HAProxy 后 Wildfly 的 503 返回码

在 WildFly 8 中转储 HTTP 请求

Keycloak/Wildfly 如何将所有控制台日志配置为 JSON 格式

如何配置 WildFly 8.2.0 日志记录以仅在调试级别显示应用程序

如何在 Wildfly 中使用 CLI 设置消息传递子系统