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
相似问题