logback错误日志为什么写不进去

来源:9-3 SpringMVC全局异常实战

无敌威威

2017-12-06

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--<encoding>UTF-8</encoding>-->
        <encoder>
            <pattern>[%d{HH:mm:ss.SSS}][%p][%c{40}][%t] %m%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
    </appender>

    <appender name="mmall" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--<File>d:/mmalllog/mmall.log</File>-->
        <File>./logs/mmall.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>./logs/mmall.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <!--<append>true</append>-->
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>[%d{HH:mm:ss.SSS}][%p][%c{40}][%t] %m%n</pattern>
        </encoder>
    </appender>


    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--<File>d:/mmalllog/error.log</File>-->
        <File>./logs/error.log</File>
        <!--<File>/Users/zwl/Documents/apache-tomcat-7.0.55(IDEA)/logs/error.log</File>-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>./logs/error.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <!--<fileNamePattern>d:/mmalllog/error.log.%d{yyyy-MM-dd}.gz</fileNamePattern>-->
            <!--<append>true</append>-->
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>[%d{HH:mm:ss.SSS}][%p][%c{40}][%t] %m%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <logger name="com.mmall" additivity="false" level="INFO" >
        <appender-ref ref="mmall" />
        <appender-ref ref="console"/>
    </logger>



    <!-- geelynote mybatis log 日志 -->

    <logger name="com.mmall.dao" level="DEBUG"/>

    <!--<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" >-->
        <!--<appender-ref ref="console"/>-->
    <!--</logger>-->

    <!--<logger name="java.sql.Connection" level="DEBUG">-->
        <!--<appender-ref ref="console"/>-->
    <!--</logger>-->
    <!--<logger name="java.sql.Statement" level="DEBUG">-->
        <!--<appender-ref ref="console"/>-->
    <!--</logger>-->

    <!--<logger name="java.sql.PreparedStatement" level="DEBUG">-->
        <!--<appender-ref ref="console"/>-->
    <!--</logger>-->


    <root level="DEBUG">
        <appender-ref ref="console"/>
        <appender-ref ref="error"/>
    </root>


</configuration>

http://img.mukewang.com/szimg/5a2761c90001ce9705960462.jpg

写回答

2回答

量能授官

2017-12-11

<logger name="com.mmall" additivity="false" level="INFO" >
        <appender-ref ref="mmall" />
        <appender-ref ref="console"/>
 </logger>

其中additivity="false",导致此logger的打印信息不向上级传递,即root--根logger未接收到任何日志信息。此处要设置默认值true。最后,要将root节点中<appender-ref ref="console"/>设置给注释,否则控制台会打印两次日志信息。

另一种方案:直接在此logger中指定一个新的名字为error的appender。

如果描述不清楚的,可以看一下http://aub.iteye.com/blog/1101260

另:geely老师,您一期给的源码中logback配置就和无敌威威贴图中一样的,我说咋调试好久都没看到error日志。不过今天总算解决了,开行ing ^_^

3
4
Geely
回复
pain7
嗯嗯的确是的,这个在上线之前有领着大家修正~
2018-02-16
共4条回复

Geely

2017-12-07

你好,同学,这块我回去好好看一下,问题出在哪里,到时候把解决方案再发到这里来。如果是问题,到时候我补一段视频再。谢谢同学,现在在外边吃饭,手机回复的。



0
2
Geely
回复
无敌威威
没事滴~~二期还有一些尽快和慕课网老师发上去,然后我找找问题,到时候再补一下~~
2017-12-08
共2条回复

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2688 学习 · 947 问题

查看课程