gpt4 book ai didi

java - Wildfly8/jBoss 包装 Logback 日志(双前缀)

转载 作者:搜寻专家 更新时间:2023-11-01 03:22:26 25 4
gpt4 key购买 nike

当使用 Wildfly8 独立登录时,所有日志消息似乎都被 Wildfly 记录器捕获:

21:13:18,808 INFO  [stdout] (default task-4) 21:13:18.806 [default task-4] ERROR some.package.MyClass - Some message
21:13:18,810 INFO [stdout] (default task-4) 21:13:18.809 [default task-4] WARN some.package.MyClass - Some message
21:13:18,810 INFO [stdout] (default task-4) 21:13:18.810 [default task-4] INFO some.package.MyClass - Some message
21:13:18,810 INFO [stdout] (default task-4) 21:13:18.810 [default task-4] DEBUG some.package.MyClass - Some message
21:13:18,811 INFO [stdout] (default task-4) 21:13:18.811 [default task-4] TRACE some.package.MyClass - Some message

我想省略 Wildfly 添加的第一部分,以便消息看起来像这样:

21:13:18.806 [default task-4] ERROR some.package.MyClass - Some message
21:13:18.809 [default task-4] WARN some.package.MyClass - Some message
21:13:18.810 [default task-4] INFO some.package.MyClass - Some message
21:13:18.810 [default task-4] DEBUG some.package.MyClass - Some message
21:13:18.811 [default task-4] TRACE some.package.MyClass - Some message

有人知道如何实现吗?

WEB_INF/classes/logback.xml:

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.hibernate" level="ERROR" />
<logger name="org.jboss.logging" level="INFO" />
<root level="ALL">
<appender-ref ref="STDOUT" />
</root>
</configuration>

WEB-INF/jboss-deployment-structure.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.apache.log4j" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
<module name="org.jboss.logmanager" />
<module name="org.jboss.logmanager.log4j" />
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
</exclusions>
</deployment>
</jboss-deployment-structure>

pom相关信息:

<packaging>war</packaging>
<!-- JAVA EE -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- LOGGING -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>

最佳答案

其中一个解决方案是向您的 Wildfly/JBoss 配置文件(例如 standalone.xml 添加一个记录器类别 stdout 和一个特殊的 handler >):

像这样:

<console-handler name="APP_CONSOLE">
<formatter>
<pattern-formatter pattern="%s%e%n"/>
</formatter>
</console-handler>
<logger category="stdout" use-parent-handlers="false">
<handlers>
<handler name="APP_CONSOLE"/>
</handlers>
</logger>

不要忘记 use-parent-handlers="false",否则它会从根记录器继承处理程序。

关于java - Wildfly8/jBoss 包装 Logback 日志(双前缀),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26821924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com