"
<root level="DEBUG"> <appender-ref ref="TRACE_FILE" /> <appender-ref ref="DEBUG_FILE" /> <appender-ref ref="INFO_FILE" /> <appender-ref ref="WARN_FILE" /> <appender-ref ref="ERROR_FILE" /> <appender-ref ref="STDOUT" /> </root>
root的级别设置为的debug
然后在logger节点又定义了
<logger name="com.alibaba.druid" level="ERROR"/>
其他日志都是正常的,就是这个druid的日志级别不能控制,除非把root级别调到DEBUG之上才不会显示。
druid显示的日志:
后面发现这个日志是在
com.alibaba.druid.filter.logging.Log4JFilter
打印出来的,用的是log4j,不知道这个有没有关系。
找资料发现还有一种可能情况,logbak和druid的日志相关配置类的加载先后顺序导致的,
需要在web.xml中配置加载监听器的顺序。可是我用的是spring-boot 现在里面没有配置webapp的模块。有没有人遇到过这样的情况,弄了好久了。。。。
下面贴一下我的logbak-spring.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <property name="PATH" value="logs"/> <!--console--> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <withJansi>true</withJansi> <encoder> <charset>UTF-8</charset> <pattern>%d{yyyy-MM-dd HH����ss.SSS} %highlight(%-5level) %magenta(${PID:-}) --- %green([%15.15thread]) %cyan(%40.40logger) #%-5.5L : %black(%msg%n)</pattern> </encoder> </appender> <!--trace--> <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PATH}/trace.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.log</FileNamePattern> <maxHistory>60</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>[%d{yyyy-MM-dd HH����ss.SSS}] [%-5level] [%logger:%line]--%mdc{client} %msg%n</pattern> </encoder> </appender> <!--info--> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PATH}/info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${PATH}/info.%d{yyyy-MM-dd}.log</FileNamePattern> <maxHistory>60</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>[%d{yyyy-MM-dd HH����ss.SSS}] [%-5level] [%logger:%line]--%mdc{client} %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!--debug--> <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PATH}/debug.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${PATH}/debug.%d{yyyy-MM-dd}.log</FileNamePattern> <maxHistory>60</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>[%d{yyyy-MM-dd HH����ss.SSS}] [%-5level] [%logger:%line]--%mdc{client} %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!--warn--> <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PATH}/warn.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${PATH}/warn.%d{yyyy-MM-dd}.log</FileNamePattern> <maxHistory>60</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>[%d{yyyy-MM-dd HH����ss.SSS}] [%-5level] [%logger:%line]--%mdc{client} %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!--error--> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PATH}/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.log</FileNamePattern> <maxHistory>60</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>[%date{yyyy-MM-dd HH����ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <root level="DEBUG"> <appender-ref ref="TRACE_FILE" /> <appender-ref ref="DEBUG_FILE" /> <appender-ref ref="INFO_FILE" /> <appender-ref ref="WARN_FILE" /> <appender-ref ref="ERROR_FILE" /> <appender-ref ref="STDOUT" /> </root> <!--logger 模块 --> <!--开发环境需要debug级别的日志,生产环境不需要--> <logger name="com.ytt" level="DEBUG" additivity="false"> <appender-ref ref="STDOUT"/> </logger> <!--开发环境和生产环境都不需要的日志 级别设置为INFO--> <logger name="ch.qos.logback" level="INFO" /> <logger name="org.springframework" level="INFO" /> <logger name="com.ibeetl" level="INFO" /> <logger name="org.mybatis" level="INFO"/> <logger name="org.apache.ibatis" level="INFO"/> <logger name="org.apache.shiro" level="INFO"/> <logger name="java.sql.Connection" level="INFO" /> <logger name="java.sql.Statement" level="INFO" /> <logger name="java.sql.PreparedStatement" level="INFO" /> <logger name="org.hibernate" level="INFO"/> <logger name="com.alibaba.druid" level="ERROR"/> </configuration>"
"
应该是要在logger中配置appender-ref吧,然后logger中还需要配置additivity="false"吧
"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。