1、浩言
新年已始,往事归零,爱恨随意。你不挽留,我不回头。敬你一杯酒,从此朝前走。我干杯,你随意。
2、背景
改造后的项目,在打印sql语句的时候了,怎么都打印不出来,因为之前的项目是自己添加jar的,然后我该成maven,只是引入了log4j的包,然后也配置了打印sql的配置,怎么都打印不出来,最后才发现是少了jar包。
3、日志打印
3.1、我加了两个包,然后就解决了打印日志问题。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.22</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.22</version>
</dependency>
log4j.properties中的配置
### set log levels
log4j.rootLogger = debug,Console,stdout
#log4j.rootLogger = DEBUG,stdout,D,E
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /data/logs/test/MbrApi.log
#log4j.appender.D.File = ${catalina.base}/logs/MbrApi.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = /data/logs/test/MbrApi-ERROR.log
#log4j.appender.E.File = ${catalina.base}/logs/MbrApi-ERROR.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
### 只输出ERROR级别以上的日志 ###
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### mybatis
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout
打印的sql如下:
3.2 日志级别
我们的日志级别一般是info,所以当你把上面的配置改成info那么就打印不了sql,所以了log4j提供了可以指定mapper.xml中命名空间的打印方式
log4j.logger.com.mouse.moon.mapper.UserMapper=trace,userMapper.xml里面的sql将会打印,如果想指定所有的,那么匹配包的公共部分
log4j.logger.com.mouse.moon=trace
trace是打印结果,也可以是debug
四:日志选择
其实很多一直都在用log4j,其实现在并不建议使用log4j,因为log4j的官网已经没有维护了,新的日志大部分都使用logback来进行处理。对于高并发的,分布式的都会有日志系统来处理,之前看资料,会用消息队列来处理日志,kafka来做。支持量比较大。
五:浩语
__
__ _ ____ __| |__ _____ ___
\ \/ \/ / | \ | \\__ \ / _ \
\ /| | / Y \/ __ \( <_> )
\/\_/ |____/|___| (____ /\____/
\/ \/
任何事情都是要靠努力和用心。