springboot logback.xml配置


springboot logback.xml配置

***********************************

logback.xml配置说明

                    

****************************

根节点configuration

属性:

scan:当配置文件修改时是否重新加载,默认为true;

scanPeriod:扫描间隔时间,如"60 seconds",不带单位时,默认为毫秒;

debug:是否输出logback的内部日志,默认为false

****************************

子节点

<property name=" " value=" "/>:设置属性值

<contextName>name</contextName>:设置上下文的名称

<timestamp key="" datePattern=""/>:设置时间戳的格式

****************************

子节点appender:设置日志输出目的地,可为控制台、文件、数据库等

属性:

name:appender的名称

class:appender使用的输出类

子节点

<append>true</append>:是否在文件后面追加,默认为true

<encoder>。。。</encoder>:输出格式

<prudent>false</prudent>:为true时,多个appender向同一个文件输出时可保证安全,但效率较低,默认为false

常用输出类:

******************************
ConsoleAppender:输出到控制台


public class ConsoleAppender<E> extends OutputStreamAppender<E> {
    protected ConsoleTarget target;  //systemout、systemerr,默认为systemout
    protected boolean withJansi;


******************************
FileAppender:输出到文件,文件不可滚动

public class FileAppender<E> extends OutputStreamAppender<E> {

    protected boolean append = true;
    protected String fileName = null;
    private boolean prudent = false;
    private FileSize bufferSize = new FileSize(8192L);


******************************
RollingFileAppender:输出到滚动文件,文件输出常用这个类

public class RollingFileAppender<E> extends FileAppender<E> {
    File currentlyActiveFile;
    TriggeringPolicy<E> triggeringPolicy;
    RollingPolicy rollingPolicy;




************************************************
滚动策略

**********************
TimeBasedRollingPolicy:时间滚动策略,常用此滚动策略

public class TimeBasedRollingPolicy<E> extends RollingPolicyBase implements TriggeringPolicy<E> {
    private int maxHistory = 0;
    protected FileSize totalSizeCap = new FileSize(0L);
    TimeBasedFileNamingAndTriggeringPolicy<E> timeBasedFileNamingAndTriggeringPolicy;
    boolean cleanHistoryOnStart = false;


**********************
SizeAndTimeBasedRollingPolicy:文件大小、时间滚动策略

public class SizeAndTimeBasedRollingPolicy<E> extends TimeBasedRollingPolicy<E> {

    FileSize maxFileSize;


**********************
FixedWindowRollingPolicy:固定窗口滚动策略

public class FixedWindowRollingPolicy extends RollingPolicyBase {

    int maxIndex = 7;
    int minIndex = 1;
    public static final String ZIP_ENTRY_DATE_PATTERN = "yyyy-MM-dd_HHmm";
    private static int MAX_WINDOW_SIZE = 20;




**************************************
触发滚动策略

SizeBasedTriggeringPolicy:文件大小触发滚动策略

public class SizeBasedTriggeringPolicy<E> extends TriggeringPolicyBase<E> {

    FileSize maxFileSize = new FileSize(10485760L);

文件滚动策略使用TimeBasedRollingPolicy或者FixedWindowRollingPolicy+SizeBasedTriggeringPolicy

文件类使用FileAppender

                

文件输出类使用RollingFileAppender

滚动策略TimeBasedRollingPolicy

                

滚动策略SizeAndTimeBasedRollingPolicy

                

使用size限制文件大小,文件命名时需带%i

滚动策略FixedWindowRollingPolicy+触发滚动策略SizedBasedTriggeringPolicy

                

使用size限制文件大小时,文件命名需带%i

*************************

子节点logger

属性:

name:指定包名、或者类的全限定名

level:日志输出级别,如果不设置,默认与root的日志级别相同

additivity:是否输出到root节点,默认为true

子节点:

<appender-ref ref="  "/>:ref引用的内容为appender的name

*************************

子节点root

root为特殊的logger,只用一个属性level

子节点:

<append-ref ref="  "/>:ref引用的内容为appender的name

*******************************************

logback.xml配置示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>

    <property name="log.path" value="e:/hhhh/"/>
    <property name="console.pattern" value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <property name="file.pattern" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${console.pattern}</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <file>${log.path}/my.log</file>
        <encoder>
            <pattern>${file.pattern}</pattern>
        </encoder>
    </appender>

    <appender name="file2" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/mylog.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>accept</onMatch>
            <onMismatch>deny</onMismatch>
        </filter>
        <encoder>
            <pattern>${file.pattern}</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
        <appender-ref ref="file2"/>
    </root>
</configuration>
发布了320 篇原创文章 · 获赞 91 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/103647076