Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring引导和JBoss 8 Wildfly日志配置应用程序_Jboss_Spring Boot_Logback_Wildfly - Fatal编程技术网

Spring引导和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>

我有一个Spring boot应用程序,准备开战。它在Tomcat 8(嵌入式或单机版)以及JBoss 8 Wildfly上部署时没有问题。
但是,在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>