logback不会将应用程序日志语句记录到控制台或文件

时间:2016-07-18 15:20:24

标签: logback

我们正在使用logback进行日志记录,并且我们在类路径中有以下jar文件

JCL-过SLF4J-1.7.7.jar 的logback经典-1.1.3.jar 的logback核-1.1.3.jar SLF4J-API-1.7.7.jar JANINO-2.7.8.jar

在每个应用程序中,我在logback.xml中都有最小的配置。喜欢这个

 <configuration scan="true" scanPeriod="10 seconds">
   <statusListener
      class="ch.qos.logback.core.status.OnConsoleStatusListener" />
   <contextName>myapp- ${HOSTNAME}</contextName>
   <include file="${logback.path}/logback.xml"/>
</configuration>

然后在我的文件系统中,我有这样的配置

<included>
<property name="LOG_HOME" value="C:\\tmp" />
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} cn=%contextName [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </layout>
</appender>

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_HOME}/application.%d{yyyy-MM-dd-HH-mm}_%i.zip</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>250KB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

    <encoder>
        <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} cn=%contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<logger name="org.springframework" level="INFO"/>
<logger name="com" level="INFO"/>

<root level="INFO">
    <appender-ref ref="stdout"/>
    <appender-ref ref="file" />
</root>

现在,当我部署我的应用程序时,我确实看到来自application.xxx.log文件中spring框架的日志,但是我的实际应用程序代码记录了一些语句没有显示在此日志文件中

在我的代码中,我使用slf4j logger工厂获取记录器,然后只记录一些虚拟语句,就像这样

private static final Logger logger = LoggerFactory.getLogger(GameService.class);
logger.info("Playing cricket game.......");

1 个答案:

答案 0 :(得分:0)

我想我想出了这个问题。在我们的lib中,我们使用的是修改记录器上下文对象的常用logger util类。一旦我删除了这种依赖,事情就好了。由于这是旧的日志记录方式,我们不再需要常用的logger util。