SLF4J停止记录到控制台

时间:2015-05-01 15:19:45

标签: java glassfish weblogic slf4j logback

我已经设置了一个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>

0 个答案:

没有答案