我已经设置了一个Web应用程序来使用SLF4J和logback记录消息。我已将logback配置为将消息记录到控制台和日志文件,但是当我在某个时刻部署应用程序时,我停止向控制台发送任何消息。
我一直在尝试各种不同的配置。 有了玻璃鱼,一切似乎都没问题,直到我跑:
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
此时没有日志输出到控制台。
使用weblogic甚至在重新部署应用程序后没有安装SLF4JBridgeHandler我停止向控制台发送日志消息(JUL日志记录仍然出现在控制台中)。在第一次部署时,如果在任何其他日志记录发生之前导致servlet异常,我还可以使控制台日志记录失败。
我也尝试过使用log4j2作为登录实现,但结果是一样的。
不确定为什么控制台日志记录正在破坏
使用 SLF4J 1.7.12 logback 1.1.3 玻璃鱼3.1.2.2 weblogic 12c 这是我的配置:
<configuration debug="true" scan="true">
<property name="LOG_FILE_NAME" value="compass" />
<timestamp key="byDay" datePattern="yyyyMMdd"/>
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<jmxConfigurator />
<appender name="compass-con" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%highlight(%-25(%date) %-5level) %cyan(%logger{5}) %msg%n</pattern>
</encoder>
</appender>
<appender name="compass-async-con" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>5000</queueSize>
<appender-ref ref="compass-con"/>
</appender>
<logger name="com.ciminc" level="DEBUG"/>
<logger name="org.hibernate" level="INFO"/>
<logger name="org.jboss.seam" level="INFO"/>
<logger name="com.icesoft" level="INFO"/>
<logger name="org.icesoft" level="INFO"/>
<logger name="javax.faces.view.facelets" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<logger name="ch.qos" level="DEBUG"/>
<root level="INFO">
<!--<appender-ref ref="compass-async-file" />-->
<appender-ref ref="compass-async-con"/>
</root>
weblogic.xml中:
<container-descriptor>
<prefer-application-packages>
<package-name>antlr</package-name>
<package-name>org.apache.log4j</package-name>
<package-name>org.joda</package-name>
<package-name>ch.qos.logback</package-name>
<package-name>org.slf4j</package-name>
<package-name>org.apache.commons</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>org.slf4j</resource-name>
<resource-name>ch.qos.logback</resource-name>
<resource-name>org.apache.commons</resource-name>
</prefer-application-resources>