【问题标题】:Wildfly Logging - How to prevent application log to be logged to serve.logWildfly 日志记录 - 如何防止将应用程序日志记录到 serve.log
【发布时间】:2016-02-26 21:32:55
【问题描述】:

我正在尝试按应用程序分隔日志。 Standalone.xml 带有用于控制台和文件的预配置日志。我为我的应用程序和相应的记录器创建了一个文件处理程序。但是日志记录在我的 application.log 和 server.log 中。

我确认我的 webapp 不包含 log4j.jar

谁能告诉我如何防止 log4j 为 server.log 记录并且只记录到相应的应用程序日志文件?

非常感谢!

-- Web 应用服务器:Wildfly 9.0.1

--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>
<periodic-rotating-file-handler name="FILE" autoflush="true">
    <formatter>
        <named-formatter name="PATTERN"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="server.log"/>
    <suffix value=".yyyy-MM-dd"/>
    <append value="true"/>
</periodic-rotating-file-handler>

<periodic-rotating-file-handler name="SECVALFILE" autoflush="true">
    <formatter>
        <named-formatter name="PATTERN"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="securityvalidation.log"/>
    <suffix value=".yyyy-MM-dd"/>
    <append value="true"/>
</periodic-rotating-file-handler>

<logger category="com.arjuna">
    <level name="WARN"/>
</logger>
<logger category="org.apache.tomcat.util.modeler">
    <level name="WARN"/>
</logger>
<logger category="org.jboss.as.config">
    <level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
    <level name="WARN"/>
</logger>
<logger category="jacorb">
    <level name="WARN"/>
</logger>
<logger category="jacorb.config">
    <level name="ERROR"/>
</logger>

<logger category="com.oracle.securityvalidation">
    <level name="DEBUG"/>
    <handlers>
        <handler name="SECVALFILE"/>
    </handlers>
</logger>
<root-logger>
    <level name="INFO"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILE"/>
    </handlers>
</root-logger>

……

【问题讨论】:

    标签: log4j wildfly


    【解决方案1】:

    我已经发现了问题。

    默认情况下,父记录器将处理任何消息。我们可以使用记录器属性“use-parent-handlers”来指定消息是否应该由父记录器处理

    还是非常感谢你!

    <logger category="com.oracle.securityvalidation" use-parent-handlers="false">
    <level name="DEBUG"/>
    <handlers>
        <handler name="SECVALFILE"/>
    </handlers>
    

    【讨论】:

    • 我建议使用 CLI 或 Web 控制台而不是编辑原始 XML。更改 use-parent-handlers 值的 CLI 命令将是; /subsystem=logging/logger=com.oracle.securityvalidation:write-attribute(name=use-parent-handlers, value=false)。这样做的好处是您在执行 CLI 命令后无需关闭或重新启动服务器。
    • 我不知道这一点。非常感谢。
    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多