【问题标题】:How to log different log level to different log file from the same category in Wildfly standalone.xml?如何将不同的日志级别记录到 Wildfly Standalone.xml 中同一类别的不同日志文件?
【发布时间】:2022-10-14 07:56:06
【问题描述】:

我想记录所有错误并警告警告错误日志文件和其余的休息日志文件。

我在standalone.xml 中创建了以下内容,但它没有达到我的预期。

任何人有任何建议或解决方案吗?

`<periodic-rotating-file-handler name="MY_WARN_ERROR" autoflush="true">
                <formatter>
                    <named-formatter name="PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="warn_error.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>`
`<periodic-rotating-file-handler name="MY_REST" autoflush="true">
                <formatter>
                    <named-formatter name="PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="rest.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>`
            <logger category="com.myapplication" use-parent-handlers="false">
                <level name="ERROR"/>
                <level name="WARN"/>
                <handlers>
                    <handler name="MY_WARN_ERROR"/>
                </handlers>
            </logger>
            <logger category="com.myapplication" use-parent-handlers="false">
                <level name="ALL"/>
                <handlers>
                    <handler name="MY_REST"/>
                </handlers>
            </logger>

【问题讨论】:

    标签: java logging wildfly-17


    【解决方案1】:

    您不能两次定义相同的记录器。如果您真的只想将特定日志放入一个文件中,则必须使用过滤器。不过,您必须将处理程序添加到单个记录器配置中。

    使用 WildFly CLI,它看起来像:

    /subsystem=logging/periodic-rotating-file-handler=MY_WARN_ERROR:add(level=WARN, named-formatter=PATTERN, file={relative-dir=jboss.server.log.dir, path=warn_error.log}, append=true, suffix=".yyyy-MM-dd", autoflush=true)
    /subsystem=logging/periodic-rotating-file-handler=MY_REST:add(named-formatter=PATTERN, file={relative-dir=jboss.server.log.dir, path=warn_error.log}, append=true, suffix=".yyyy-MM-dd", autoflush=true)
    /subsystem=logging/logger=com.myapplication:add(use-parent-handlers=false, handlers=[MY_WARN_ERROR, MY_REST])
    

    【讨论】:

    • 您能否使您的代码清晰并明确该代码的确切放置位置?
    • 这些是 WildFly CLI 命令,旨在在 CLI 中执行。仅这些不会过滤您的日志消息,但它会向您展示如何在记录器上定义多个处理程序。
    猜你喜欢
    • 2020-12-25
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多