美文网首页
日志问题

日志问题

作者: 吴世浩 | 来源:发表于2017-02-09 20:15 被阅读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  \/ __ \(  <_> )
                                  \/\_/ |____/|___|  (____  /\____/ 
                                                        \/     \/          
                                     任何事情都是要靠努力和用心。                                                   
    

    相关文章

      网友评论

          本文标题:日志问题

          本文链接:https://www.haomeiwen.com/subject/sbhwittx.html