我在WildFly 8中运行Web应用程序,由于某种原因它不会记录.我使用SLF4J和LOGBACK.日志文件是在部署时创建的,但它是空的.我也没有在wildfly日志中看到我的日志语句.
该课程包含:
package com.blah.oops;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
static final Logger log = LoggerFactory.getLogger(EndpointImpl.class);
log.debug("request called");
Run Code Online (Sandbox Code Playgroud)
战争包含:
配置文件logback.xml包含:
<configuration scan="true" scanPeriod="10 seconds">
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${LOG_PATH}/backend-main.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} %msg%n</pattern>
</encoder>
</appender>
<!-- PROFILER configuration -->
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
<Marker>PROFILER</Marker>
<OnMatch>ACCEPT</OnMatch>
<!-- <OnMatch>DENY</OnMatch> -->
</turboFilter>
<logger name="org.eclipse.jetty.util.log" level="info"/>
<logger name="com.blah" level="debug"/>
<logger name="org.apache.cxf" level="warn"/>
<root level="info">
<appender-ref ref="FILE"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
console.log包含logback初始化:
.[0m.[0m10:19:52,716 INFO [stdout] (MSC service thread 1-2) 10:19:52,489 |-INFO in …Run Code Online (Sandbox Code Playgroud) 我使用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) Spring Boot有一个功能,它可以自动检测任何可用的日志框架(基于org.springframework.boot.logging.LoggingSystem.SYSTEMSLogback,Log4j或JUL中列出的类的存在),并从应用程序提供的日志配置文件或Spring Boot自己的默认配置文件进行配置,打包Spring Boot本身.
当将Grails 3应用程序作为war文件部署到JBoss EAP 6(又名WildFly 7)时,这会导致问题.当应用程序初始化时,Spring Boot会找到JBoss提供的JUL(org.jboss.logmanager.LogManager)日志记录实现,并调用readConfiguration()它上面的方法,这会影响日志记录配置.
有没有办法禁用Spring Boot的日志记录自动配置?(我可以使用Spring Boot 检测并使用日志框架;我只是不希望它尝试配置它.)我查看了源代码,但没有看到任何钩子来控制它.
相关源代码:
可能的想法:
LoggingApplicationListener从应用程序侦听器列表中删除它之前接收ApplicationStartedEvent或ApplicationEnvironmentPreparedEvent事件(触发日志记录的配置)?这些其他相关问题并没有解决我的问题,因为用例不同:
版本: