日志问题

2017-02-09  本文已影响47人  吴世浩

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如下:


Paste_Image.png

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  \/ __ \(  <_> )
                              \/\_/ |____/|___|  (____  /\____/ 
                                                    \/     \/          
                                 任何事情都是要靠努力和用心。                                                   
上一篇下一篇

猜你喜欢

热点阅读