Wildfly8 / jBoss wraps log logs (double prefix)

When Logback with standalone Wildfly8 all log messages seem to be captured by Wildfly logger:

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

      

I want to omit the first part added by Wildfly so that the messages look something like this:

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

      

Does anyone know how to achieve this?

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>

      

Relevant information from 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>

      

+3


source to share


1 answer


One solution is to add a log category stdout

and a special one handler

to your Wildfly / JBoss config file (for example standalone.xml

):

Like this:



<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>

      

Don't forget use-parent-handlers="false"

, otherwise it inherits handlers from the root registrar.

+1


source







All Articles