我使用tomcat并简单地覆盖默认日志系统.如何在我的spring应用程序中使用wildfly上的logback启用日志记录?
我的logback.xml是关于tomcat的
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="com.citronium.planstery" level="INFO" />
<logger name="org.apache.http.impl.conn.tsccm" level="ERROR" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我有一个准备成为 WAR 的 Spring 启动应用程序。它在 Tomcat 8(嵌入式或独立)以及 JBoss 8 Wildfly 上部署时没有问题。
但是,虽然在 Tomcat 上我们已经在 JBoos 上配置了工作 logback 配置,但它不再起作用。
我尝试了几种不同的建议解决方案:
https : //stackoverflow.com/a/21887529/3997870
/sf/answers/1615618511/
我发现最好的是添加到我的项目 WEB-INF/ jboss-deployment-structure.xml 与
<jboss-deployment-structure>
<deployment>
<!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment -->
<!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
但它仍然没有完全解决问题。在日志中,我有两次相同的行(不是因为 logback 配置,因为在 Tomcat 上工作正常),并且在第一条记录中打印了关于时间、级别、线程的双重信息。
[2014-11-26 15:28:42,605] [INFO ] [MSC service thread 1-3 …Run Code Online (Sandbox Code Playgroud) 当使用 Wildfly8 独立 Logback 时,所有日志消息似乎都被 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
Run Code Online (Sandbox Code Playgroud)
我想省略 Wildfly 添加的第一部分,以便消息看起来像这样:
21:13:18.806 [default task-4] ERROR some.package.MyClass …Run Code Online (Sandbox Code Playgroud)