logback日志框架使用

依赖引入


   ch.qos.logback
    logback-classic
    1.1.7

使用logback日志框架只需要引入以上即可,(我们平时使用较多的@Slf4j注解是另外的机制触发)后续会谈到

查看以上的maven依赖项引入如下:

该依赖项引入了:

        slf4j-api

        logback-core

        logback-classic

配置项样列




    

    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{5}: - %m%n

        
    

    
    
        
            
            ${LOG_HOME}/performance-batch.%d{yyyy-MM-dd}.log
            

            
            30
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}: - %msg%n

        
    

    
    
        
            ${LOG_HOME}/performance-batch-error.%d{yyyy-MM-dd}.log
        
        
        true
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{3}: - %msg%n
            utf-8
        
        
        
            error
            ACCEPT
            DENY
        
    



    
        
    

    
        
    

    

    
    
        
        
        
    


常用占位符含义

%C = %class【等价】打印全类名 ---不推荐,耗性能
%d = %date【等价】  日期格式可以在后面用{}表示
%F = %file 【等价】 发出日志请求的java源文件名字 ---不推荐,耗性能
%L = %line 【等价】 java文件中请求的行号 ---不推荐,耗性能
%m = %msg = %message  日志正文信息 
%M = %method 日志请求发出的方法的方法名----不推荐,耗性能
%n 换行符
%p = %le = %level【等价】 日志级别  %-5p 表示打印日志级别,且左对齐5个字符的距离
%t = %thread 线程名称
%i 文件序号,在单条日志中不支持,在文件名称处支持

源码浅析

从结构上看,logback的配置解析是从标签开始的,从代码上看入口是:

logback日志框架使用_第1张图片

org.slf4j.impl.StaticLoggerBinder的静态代码块开始的。

logback日志框架使用_第2张图片

从代码上看logback配置文件的优先级如下:
logback日志框架使用_第3张图片

logback日志框架使用_第4张图片

最终会把xml配置内容解析成一个LoggerContext对象,其中的结构关系如下:

logback日志框架使用_第5张图片

每个Logger包含的元素有:名称、日志级别、生效的日志级别、父Logger、子logger列表、一组Appender列表...

未在xml中明确定义的logger的日志输出相关的所有限制继承父类,所有logger的父类是Root

你可能感兴趣的:(java日志框架,logback)