首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wildfly8/jBoss包装回传日志(双前缀)

Wildfly8/jBoss包装回传日志(双前缀)
EN

Stack Overflow用户
提问于 2014-11-09 04:49:20
回答 1查看 690关注 0票数 5

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

代码语言:javascript
复制
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添加的第一部分,以便消息看起来像这样:

代码语言:javascript
复制
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:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<?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的相关信息:

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2016-11-17 06:48:37

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

如下所示:

代码语言:javascript
复制
<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",否则它将从根记录器继承处理程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26821924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档