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>
写回答
2回答
-
<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 ^_^
342018-02-16 -
Geely
2017-12-07
你好,同学,这块我回去好好看一下,问题出在哪里,到时候把解决方案再发到这里来。如果是问题,到时候我补一段视频再。谢谢同学,现在在外边吃饭,手机回复的。
022017-12-08
相似问题