我正在研究java web项目。我使用Wildfly 10.我想将它与logback一起使用。我做了一些配置:
的pom.xml
//import statements.
declare var facebookConnectPlugin:any;
@Component()
//...
logback.xml
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.24</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.1</version>
</dependency>
的JBoss部署-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" >
<encoder>
<pattern>[%date] [%thread] [%-5level] [%logger{36}] - %msg%n </pattern>
</encoder>
</appender>
<logger name="com.pr" level="debug" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
问题是我期待输出像:
[2017-02-26 12:32:23,671] [ServerService Thread Pool - 179] [DEBUG] [o.springframework.jndi.JndiTemplate] - 查找JNDI
但我得到了:
12:32:23,671 INFO [stdout](ServerService线程池 - 179)[2017-02-26 12:32:23,671] [ServerService线程池 - 179] [DEBUG] [o.springframework.jndi。 JndiTemplate] - 查找JNDI
所以看起来jboss在开头添加了一些东西。怎么预防呢?
答案 0 :(得分:4)
WildFly将System.out
和System.err
包装在记录器中。如果要使用写入任一流的appender或处理程序,则需要使用java.io.FileDescriptor.out
(或err
),或者需要为stdout
或{{创建记录器类别1}}以及要分配给记录器的新stderr
。
console-handler
上述CLI脚本应从记录器/subsystem=logging/pattern-formatter=stdout:add(pattern="%s%n")
/subsystem=logging/console-handler=stdout:add(autoflush=true, target=System.out, named-formatter=stdout, level=ALL)
/subsystem=logging/logger=stdout:add(use-parent-handlers=false, handlers=[stdout], level=ALL)
中删除默认模式。
standalone.xml中的相应表示如下所示:
stdout