问题描述
我正在尝试为现有的Logback
应用实现EAP7.2
。
JBoss EAP 7.2.8.GA (WildFly Core 6.0.27.Final-redhat-00001)
当我运行gradle clean build
时,它将在该位置创建正确的日志并记录所有测试结果。但是,当我部署该应用程序时,它根本不使用logback.xml
,并且不会创建日志。部署应用程序时,只有server.log
处于活动状态,因为它是默认的jboss设置。
我如何实现回滚,以便应用程序在部署时知道要使用它?我检查了在适当的WEB-INF/classes/
EAR build.gradle
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.30'
implementation 'ch.qos.logback:logback-classic:1.2.3'
implementation 'ch.qos.logback:logback-core:1.2.3'
}
jboss排除项
<exclusions>
<!-- don't want to integrate with server logging yet -->
<module name="org.jboss.logging"/>
<module name="org.slf4j"/>
<module name="org.slf4j.impl"/>
</exclusions>
server.log
2020-09-25 16:28:05,188 INFO [stdout] (QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager) 16:28:05.187 [QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager] DEBUG org.quartz.impl.jdbcjobstore.StdRowLockSemaphore - Lock 'STATE_ACCESS' given to: QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager
2020-09-25 16:28:05,188 INFO [stdout] (QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager) 16:28:05.188 [QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager] DEBUG org.quartz.impl.jdbcjobstore.StdRowLockSemaphore - Lock 'TRIGGER_ACCESS' is desired by: QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager
2020-09-25 16:28:05,189 INFO [stdout] (QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager) 16:28:05.188 [QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager] DEBUG org.quartz.impl.jdbcjobstore.StdRowLockSemaphore - Lock 'TRIGGER_ACCESS' is being obtained: QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager
2020-09-25 16:28:05,189 INFO [stdout] (QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager) 16:28:05.189 [QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager] DEBUG org.quartz.impl.jdbcjobstore.StdRowLockSemaphore - Lock 'TRIGGER_ACCESS' given to: QuartzScheduler_AppScheduler-<server>11601051265073_ClusterManager
logback.xml
<configuration debug="true" scan="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${jboss.server.log.dir}/logs.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${jboss.server.log.dir}/logs.log.%d{yyyy-MM-dd}.gz</FileNamePattern>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %level [username:%X{username}][%thread] %logger [%file:%line] %msg%n
</pattern>
</encoder>
</appender>
<logger name="org.quartz" level="INFO"/>
<root level="ALL">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
解决方法
您应该在jboss-deployment-structure.xml中排除日志子系统,并设置org.jboss.logging.provider系统属性。
您可以通过JBoss EAP 7关注steps to configure LogBack上的Red Hat文章
还可以查看configuring external logging的各种选项。