• SSM-MyBatis-03:Mybatis中简单的整合日志


    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------
    简单的整合日志,首先提供俩种方式,log4j和logback
    简单的说一下logback,他由log4j的原作者编写,由于重写了内核,在关键执行路径上,性能提升较大,有些甚至达到10倍以上,占的内存更小,slf4j能很好的整合它,还有很多数不胜数的优势,所以对他
    进行补充

    先开始log4j,从简入深,循序渐进
    他这个需要的步骤如下
      1.下载jar包,因为是maven项目,所以我给你们提供一个节点
        
    <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
          </dependency>
      2.书写log4j.properties文件(文件名必须这么来命名)
        
    ### direct log messages to stdout ###
    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{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### direct messages to file mylog.log ###
    log4j.appender.file=org.apache.log4j.FileAppender
    log4j.appender.file.File=d:/log.txt
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### set log levels - for more verbose logging change 'info' to 'debug' ###
    
    log4j.logger.cn.dawn=debug, stdout,file
    ###log4j.rootLogger=debug, stdout,file###
    
    
    
    log4j整合完毕,如果你从我这儿copy的话需要改的点就是log4j.logger.你的dao层包的全名(例如cn.dawn.dao)=debug, stdout,file,
    他可以来监控sql语句,来进行排错等操作

    下面看logback
    logback需要和slf4j进行整合,slf4j和logback的关系如下,我用张图解释一下


    好,相信对于这个有一定的想法了,他们之间的关系就像接口和实现类的感觉一样
    下面说logback的使用,不要和上面的log4j一块使用,免得出现莫名其妙的错误
      1.jar包(惯例,提供节点)
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.7.21</version>
        </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
    </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
    <scope>test</scope>
    </dependency>
      2.配置logback.xml文件,名字不要起错误,因为他执行的时候会找个个名字的文件,如果没有,就会报错


    <?xml version="1.0" encoding="UTF-8"?>  
    <configuration>  
        <!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->  
       <!--  <property name="log.root.level" value="DEBUG" /> 日志级别  
        <property name="log.other.level" value="DEBUG" /> 其他日志级别   -->
       <!--  <property name="log.base" value="logs" /> 日志路径,这里是相对路径,web项目eclipse下会输出到eclipse的安装目录下,如果部署到linux上的tomcat下,会输出到tomcat/bin目录 下  
        <property name="log.moduleName" value="OALog" />  模块名称, 影响日志配置名,日志文件名  
        <property name="log.max.size" value="100MB" /> 日志文件大小  
       -->
        <!--控制台输出 -->  
        <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">  
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">  
                <Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</Pattern>  
            </encoder>  
        </appender>  
      
      <!-- 日志文件输出 -->  
        <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">  
            <File>logs/OALog.log</File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->  
            <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->  
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
                <FileNamePattern>logs/archive/OALog_all_%d{yyyy-MM-dd}.%i.log.zip  
                </FileNamePattern>  
                <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->  
                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
                    <maxFileSize>100MB</maxFileSize>  
                </timeBasedFileNamingAndTriggeringPolicy>  
            </rollingPolicy>  
            <!-- 日志输出的文件的格式  -->  
            <layout class="ch.qos.logback.classic.PatternLayout">  
                <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>  
            </layout>  
        </appender>  
       
        <!-- 为某个包下的所有类的指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName -->
        <!--myibatis log configure-->
    <!--    <logger name="com.apache.ibatis" level="trace"/>
        <logger name="java.sql.Connection" level="DEBUG"/>
        <logger name="java.sql.Statement" level="DEBUG"/>
        <logger name="java.sql.PreparedStatement" level="DEBUG"/>-->
        <logger name="cn.dawn" additivity="true">
            <level value="debug" />
            <appender-ref ref="stdout" />
            <appender-ref ref="file" />  
        </logger>
        <!-- root将级别为“DEBUG”及大于“DEBUG”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console -->  
        <!--<root level="info">
            <appender-ref ref="stdout" /> &lt;!&ndash; 标识这个appender将会添加到这个logger &ndash;&gt;
            <appender-ref ref="file" />  
        </root>-->
    </configuration>  
    
    

      

      需要修改的地方为有个logger的name属性的值改为你的dao层包的全包名,然后就可以了



        

  • 相关阅读:
    CodeForces 385C Bear and Prime Numbers 素数打表
    ZOJ 2853 Evolution 【简单矩阵快速幂】
    矩阵快速幂学习笔记
    USACO The Tamworth Two 模拟
    USACO Money Systems Dp 01背包
    UASCO Zero Sum DFS + Stack
    USACO Cow Pedigrees 【Dp】
    USACO Longest Prefix 【水】
    USACO Party Lamps 【Binary code solvution】【规律】
    USACO Runaround Numbers 模拟
  • 原文地址:https://www.cnblogs.com/DawnCHENXI/p/8460174.html
Copyright © 2020-2023  润新知