源无极

导航

 

一、新日志框架LogBack介绍


    简介:日志介绍和新日志框架Logback讲解

    1.常用处理java的日志组件 slf4j,log4j,logback,common-logging 等
    
    2、logback介绍:基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用
        logback当前分成三个模块:logback-core,logback-classic和logback-access;
        logback-core是其它两个模块的基础模块

  注意:日志框架影响QPS比较大,选择前应该进行测试,慎重选择。

 3、Logback的核心对象:
        Logger:日志记录器
        Appender:指定日志输出的目的地,目的地可以是控制台,文件(springboot默认输出到控制台)
        Layout:日志布局 格式化日志信息的输出

        
    4、日志级别:DEBUG < INFO < WARN < ERROR

      一般使用INFO 和WARN即可

 1  ===========log4j示例===========        
 2          ### 设置###
 3         log4j.rootLogger = debug,stdout,D,E
 4 
 5         ### 输出信息到控制抬 ### 参考log4j文档写
 6         log4j.appender.stdout = org.apache.log4j.ConsoleAppender
 7         log4j.appender.stdout.Target = System.out
 8         log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
 9         log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
10 
11         ### 输出DEBUG 级别以上的日志到=D://logs/error.log ###
12         log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
13         log4j.appender.D.File = D://logs/log.log
14         log4j.appender.D.Append = true
15         log4j.appender.D.Threshold = DEBUG 
16         log4j.appender.D.layout = org.apache.log4j.PatternLayout
17         log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
18 
19         ### 输出ERROR 级别以上的日志到=D://logs/error.log ###
20         log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
21         log4j.appender.E.File =E://logs/error.log 
22         log4j.appender.E.Append = true
23         log4j.appender.E.Threshold = ERROR 
24         log4j.appender.E.layout = org.apache.log4j.PatternLayout
25         log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n 
26 
27         ===========logback============

 

    
    4、Log4j日志转换为logback在线工具(支持log4j.properties转换为logback.xml,不支持 log4j.xml转换为logback.xml)
     https://logback.qos.ch/translator/

1)转化工具

2)将以上的log4j日志复制进来转成logback.xml

3)查看结果

 

 

二、SpringBoot2.x日志讲解和自定义Logback配置实战


    简介:讲解SpringBoot2.x整合Logback配置实战

        1、官网介绍:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-logging

1)官方资料

2)日志布局

3)DEBUG级日志输出可以用jar包启动

 

           各个组件案例:https://logback.qos.ch/manual/index.html
        
        2、分析SpringBoot启动日志
            1)默认情况下,Spring Boot将日志输出到控制台

        三、整合Logback实战


            1.在src/main/resources下创建 日志文件logback-spring.xml,官方推荐 -spring.xml结尾

                 logback-spring.xml里面的内容如下:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <configuration>
 3 
 4      <appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
 5         <layout class="ch.qos.logback.classic.PatternLayout">
 6             <pattern>
 7                 %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
 8             </pattern>
 9         </layout>
10     </appender>
11 
12     <appender name="fileInfoApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
13         <filter class="ch.qos.logback.classic.filter.LevelFilter">
14              <level>ERROR</level>
15             <onMatch>DENY</onMatch>
16             <onMismatch>ACCEPT</onMismatch>
17         </filter>
18         <encoder>
19             <pattern>
20                 %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
21             </pattern>
22         </encoder>
23         <!-- 滚动策略 -->
24         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
25             <!-- 路径 -->
26             <fileNamePattern>app_log/log/app.info.%d.log</fileNamePattern>
27         </rollingPolicy>
28     </appender>
29 
30     <appender name="fileErrorApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
31         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
32             <level>ERROR</level>
33         </filter>
34         <encoder>
35             <pattern>
36                 %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
37             </pattern>
38         </encoder>
39         
40         <!-- 设置滚动策略 -->
41         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
42             <!-- 路径 -->
43             <fileNamePattern>app_log/log/app.err.%d.log</fileNamePattern>
44             
45             <!-- 控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动,
46             且<maxHistory> 是1,则只保存最近1个月的文件,删除之前的旧文件 -->
47              <MaxHistory>1</MaxHistory>
48             
49         </rollingPolicy>
50     </appender>
51    <root level="INFO">  
52         <appender-ref ref="consoleApp"/>
53         <appender-ref ref="fileInfoApp"/>
54         <appender-ref ref="fileErrorApp"/>
55     </root>
56 </configuration>

 

 logback-spring.xml文件分析

1)整体结构

2)单个布局

  各个组件案例:https://logback.qos.ch/manual/index.html 

a)

3)filleInfoApp

4)fileErrorApp

 2.cotroller

2)启动访问

3)查看控制台

注意:root放在logback-spring.xml的最后面,放前面会出问题

4)刷新工程出现如下图的log文件

5)

6)logback-spring.xml已经过滤掉Error级别的了

7)扩展:改为debug会怎么样呢? 将生成的log文件先删除

8)

9)

  总结:

1.开发中一般用Info级别,debug无用信息太多,占用磁盘

 2.  默认加载加载配置顺序 logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
            
 3. 注释:
                <configuration> 子节点
                <appender></appender>                       
                <logger></logger>
                <root></root>(要加在最后)        

posted on 2018-11-29 22:21  源无极  阅读(92)  评论(0编辑  收藏  举报