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

Posted

技术标签:

【中文标题】如何配置 WildFly 8.2.0 日志记录以仅在调试级别显示应用程序【英文标题】:How to configure WildFly 8.2.0 logging to show JUST the application on debug level 【发布时间】:2016-03-25 05:21:27 【问题描述】:

很抱歉这个非常基本的问题,但我花了很多时间和研究,但无法让它发挥作用:-/ 我想要什么:在 INFO 级别显示所有日志记录,但在 DEBUG 级别显示我的应用程序。到目前为止,我的设置和理解是:

在我的 WildFly 中,我使用带有 logback 的 slf4j。我根本没有配置 logback,这是在 WildFly 配置中完成的。 这是我的pom:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.13</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.0.13</version>
</dependency>

这是我的记录器配置:

<console-handler name="CONSOLE">
    <level name="DEBUG"/>
    <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>
<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="org.hibernate">
    <level name="INFO"/>
</logger>
<logger category="javax">
    <level name="INFO"/>
</logger>
<logger category="com.sample.application" use-parent-handlers="false">
    <level name="DEBUG"/>
    <handlers>
        <handler name="CONSOLE"/>
    </handlers>
</logger>
<root-logger>
    <level name="DEBUG"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILE"/>
    </handlers>
</root-logger>

因此处理程序和根记录器必须保持调试状态,否则将无法通过调试级别日志。但接下来的一切,例如[org.jboss.as.controller.management-operation] 也通过调试级别,我无法手动将所有内容设置为 INFO 级别。我哪里错了?提前致谢!

【问题讨论】:

顺便说一句,如果您使用的是子系统配置,则您没有使用 logback,因此您可以删除该依赖项。 【参考方案1】:

console-handler 级别保留在DEBUG 上,将root-logger 级别更改回INFO,然后只需将您的应用程序记录器更改为

<logger category="com.sample.application">
    <level name="DEBUG"/>
</logger>

【讨论】:

以上是关于如何配置 WildFly 8.2.0 日志记录以仅在调试级别显示应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Wildfly 8.2 中配置日志的正确方法

使用 JDK11 设置的 Wildfly 服务器中的日志记录问题

覆盖 WildFly 中的日志记录

如何在 WildFly 中配置压缩日志?

WildFly 8 日志记录级别

如何在 JBoss Wildfly 9 中关闭 Hibernate 调试日志记录?