Spring引导和JBoss 8 Wildfly日志配置应用程序
我有一个Spring boot应用程序,准备开战。它在Tomcat 8(嵌入式或单机版)以及JBoss 8 Wildfly上部署时没有问题。Spring引导和JBoss 8 Wildfly日志配置应用程序,jboss,spring-boot,logback,wildfly,Jboss,Spring Boot,Logback,Wildfly,我有一个Spring boot应用程序,准备开战。它在Tomcat 8(嵌入式或单机版)以及JBoss 8 Wildfly上部署时没有问题。 但是,在Tomcat上,我们已经在JBoos上配置了工作logback配置,它不再工作了。 我尝试了几种不同的建议解决方案: 我发现最好的方法是使用添加到我的项目WEB-INF/jboss-deployment-structure.xml中 <jboss-deployment-structure> <deployment>
但是,在Tomcat上,我们已经在JBoos上配置了工作logback配置,它不再工作了。
我尝试了几种不同的建议解决方案:
我发现最好的方法是使用
添加到我的项目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>
正如您在上面的示例中所看到的,第一条记录以某种方式包含了额外的时间戳、级别和线程(我猜是Wildfly在某个重定向过程中添加的),而第二行是正确的和预期的。我的logback配置有两个部分——第一个是内部应用程序,第二个是外部应用程序,可以在环境中重新配置)。
类路径内部:
<?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>
应用程序外部(包括一个):
${DESTINATION\u FOLDER}/${FILE\u NAME}.log
真的
${DESTINATION\u FOLDER}/${FILE\u NAME}.%d{yyyy-MM-dd}.log
%-5级别%date%-30thread%-30logger{30}[%-10mdc{requestId:-NONE}]%msg%n
有人看到可能的原因或错误配置吗?我知道现在有点晚了,但是,如果你们中的一些人面临这个问题,另一个选择是:不要禁用整个日志子系统,而只是排除JBoss/Wildfly提供的
slf4j
库,以使用spring boot使用的库
希望对某些人有所帮助。我使用自己的日志配置log4j2xml,而不是spring的日志,并且在Wildfly中遇到了同样的问题。我对整个子系统的评论超过了这一点。您使用的是什么日志外观?我对Spring Boot一无所知。它是启动WildFly还是部署到WildFly?我在WildFly容器上部署应用程序。示例日志是从server.log输出的吗?它看起来不像默认格式,并且与您的logback配置中的格式更匹配。不,它不是来自server.log。我不想完全禁用JBoss的日志记录,所以我在WAR中使用JBoss-deployment-structure.xml禁用了日志记录系统。然后,我的logback配置工作,并将日志放入指定的文件中,但使用如上所述的双线。对于其他人,您需要将答案添加到
WEB-INF\jboss deployment structure.xml
文件中,如果该文件不存在,只需创建一个新文件即可。
<?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>