[英]JBoss EAP 6.4/7 - Spring Boot Application's internal log4j2.xml configuration not printing on console
[英]Spring boot and JBoss 8 Wildfly log configuration application
我有一個准備成為 WAR 的 Spring 啟動應用程序。 它在 Tomcat 8(嵌入式或獨立)以及 JBoss 8 Wildfly 上部署時沒有問題。
但是,雖然在 Tomcat 上我們已經在 JBoos 上配置了工作 logback 配置,但它不再起作用。
我嘗試了幾種不同的建議解決方案:
https://stackoverflow.com/a/21887529/3997870
https://stackoverflow.com/a/23080264/3997870
我發現的最好的方法是將 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>
但它仍然沒有完全解決問題。 在日志中,我有兩次相同的行(不是因為 logback 配置,因為在 Tomcat 上工作正常),並且在第一條記錄中打印了關於時間、級別、線程的雙重信息。
[2014-11-26 15:28:42,605] [INFO ] [MSC service thread 1-3 ] [stdout] [NONE ] [2014-11-26 15:28:42.605 INFO 8228 --- [vice thread 1-3] o.s.boot.SpringApplication : Starting application on LCJLT306 with PID 8228 (started by Piotr.Konczak in D:\servers\wildfly-8.2.0.Final\bin)
]
[2014-11-26 15:28:42,605] [INFO ] [MSC service thread 1-3 ] [o.s.boot.SpringApplication] [NONE ] [Starting application on LCJLT306 with PID 8228 (started by Piotr.Konczak in D:\servers\wildfly-8.2.0.Final\bin)]
正如您在上面的示例中所看到的,第一條記錄以某種方式包含額外的時間戳、級別和線程(我猜在某些重定向期間由 Wildfly 添加),而第二行是正確的和預期的。
我的 logback 配置有 2 個部分- 第一個內部應用程序和第二個外部應用程序,以便可以在環境中重新配置)。
在類路徑中:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<include file="/opt/appName/config/appNameLogConfig.xml" />
</configuration>
在應用程序之外(包括一個):
<?xml version="1.0" encoding="UTF-8"?>
<included>
<property name="DESTINATION_FOLDER" value="/opt/appName/logs" />
<property name="FILE_NAME" value="AppName" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DESTINATION_FOLDER}/${FILE_NAME}.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--daily rollover-->
<fileNamePattern>${DESTINATION_FOLDER}/${FILE_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%-5level %date %-30thread %-30logger{30} [%-10mdc{requestId:-NONE}] %msg%n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="INFO"/>
<logger name="org.hibernate" level="INFO"/>
<logger name="com.wordnik" level="INFO"/>
<logger name="com.mangofactory" level="INFO"/>
<logger name="com.company.appName" level="INFO"/>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</included>
有沒有人看到可能的原因或配置錯誤?
我知道現在有點晚了,但是,如果你們中的一些人遇到這個問題,另一種選擇是:不要禁用整個日志記錄子系統,而只是排除 JBoss/Wildfly 提供的slf4j
庫,以使用 spring-引導。
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name='org.slf4j'/>
<module name='org.slf4j.impl'/>
</exclusions>
</deployment>
</jboss-deployment-structure>
希望可以幫助某人。
我正在使用我自己的日志記錄配置 log4j2 xml 而不是 spring 的日志記錄並面臨與 Wildfly 相同的問題。 我評論了整個子系統系統以超越它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.