spring boot 配置logback.xml

spring boot 默认的日志框架为  logback ,在这里记录一下相关的配置,方便以后使用。

日志级别

ALL:是最低等级的,用于打开所有日志记录。

TRACE:用于展现程序执行的轨迹

DEBUG:指出细粒度信息事件对调试应用程序是非常有帮助的。

INFO:表明 消息在粗粒度级别上突出强调应用程序的运行过程。

WARN:表明会出现潜在错误的情形。

ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行。

FATAL:指出每个严重的错误事件将会导致应用程序的退出。

OFF:是最高等级的,用于关闭所有日志记录。

 一般的日志4种级别就足够了: DEBUG,INFO,WARN,ERROR

日志格式化

%d{yyyy-MM-dd HH:mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用

%t 同 %thread
%-5level——日志级别,并且使用5个字符靠左对齐

%line——输出日志所在的代码行数
%logger{36}——日志输出的类全包名,{36}最大显示长度
%msg——日志消息
%m 同 %msg
%n——平台的换行符

${PID:-} ——进程号

logback 配置文件

logback默认读取的配置文件为:

logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy

上面是默认的命名规则,并且放在src/main/resources下面即可

如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,可以在application.properties配置文件里面通过logging.config属性指定自定义的名字:

logging.config=classpath:logging-config.xml

配置文件的默认结构:



    logback
    
    
    
       
        
            %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
        
    
 
    
    
        
            ${log.path}/logback.%d{yyyy-MM-dd}.log
        
        
            %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
        
    
 
    
        
        
    
 
    
    
    
    
        
    

contextName:设置上下文名称

每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改,可以通过%contextName来打印日志上下文名称。

logback


property:设置变量

用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。


………
${log.path}/logback.%d{yyyy-MM-dd}.log

appender:子节点一

ThresholdFilter 为系统定义的拦截器,level 是最低拦截的级别。低于此设置级别的日志不会输出。

例如我们用ThresholdFilter来过滤掉ERROR级别以下的日志不输出到文件中。如果不用记得注释掉,不然你控制台会发现没日志~

encoder 表示对日志进行编码

彩色日志输出

本地调试的时候,实时日志的高亮有助于快速排查问题,下面我们来说一下怎么配置彩色日志





……



……


    
        ${CONSOLE_LOG_PATTERN}
        utf8
    

彩色日志的输出依赖于clr, 对于的 org.springframework.boot.logging.logback.ColorConverter

格式%clr(格式化日志数据){颜色值||样式}

%clr(%-5level){highlight}

 颜色值

可以查看 org.springframework.boot.logging.logback.ColorConverter源码

static {
		Map ansiElements = new HashMap<>();
		ansiElements.put("faint", AnsiStyle.FAINT);
		ansiElements.put("red", AnsiColor.RED);
		ansiElements.put("green", AnsiColor.GREEN);
		ansiElements.put("yellow", AnsiColor.YELLOW);
		ansiElements.put("blue", AnsiColor.BLUE);
		ansiElements.put("magenta", AnsiColor.MAGENTA);
		ansiElements.put("cyan", AnsiColor.CYAN);
		ELEMENTS = Collections.unmodifiableMap(ansiElements);
	}

常用的配置:因为容器化部署日志由运维收集,就取消了日志文件配置



    
    
    
    
    
    

    
        
            TRACE
        
        
            ${CONSOLE_LOG_PATTERN}
            utf8
        
    

    
    
        
    

    
    
    
    
    

你可能感兴趣的:(spring,boot,logback,xml)