项目比较大,各种乱七八糟的框架。
Log4j配置的是INFO级别。
然而今天开发的时候我需要log4j打印出SQL的执行情况。
先改log4j的rootLogger级别到DEBUG......后果就是各种日志乱飞。我的SQL都不知道被啥时候打印到哪儿去了。
这种方案行不通了。
百度到一个大牛说可以控制包的日志级别,看了他的文章,然后自己摸索着配了一下。
于是有了以下的配置:
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=ERROR
#log4j.logger.org.hibernate=ERROR #没用到,屏蔽
log4j.logger.org.springframework=ERROR
log4j.logger.org.mybatis=DEBUG
log4j.logger.org.apache.http=ERROR
log4j.logger.com.netflix=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
log4j mybatis打印出sql,不打印其它框架的日志的配置
绝对有效!
记录一下,以后要用也好查找!
2016年11月22日补充:
logback mybatis打印出sql,不打印其它框架日志的配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_HOME" value="${catalina.base}/logs" />
<property name="PROJECT_NAME" value="dgdr" />
<property name="ENCODING" value="UTF-8" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}- %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
<logger name="com.github" level="INFO" />
<logger name="org" level="INFO"/>
<logger name="net" level="INFO"/>
<logger name="org.mybatis" level="DEBUG"/>
<logger name="java.sql" level="DEBUG" />
</configuration>