springboot2.0 整合 logback 日志

springboot2.0 整合 logback 日志

文章目录

    • springboot2.0 整合 logback 日志
      • 1. logback-spring.xml 文件
      • 2. logback 异步日志配置
      • 3. logback-spring.xml - 2

1. logback-spring.xml 文件

    
    
    
    
    <configuration scan="true" scanPeriod="10 seconds">
    
        <contextName>logbackcontextName>
    
        
        <property name="logging.path" value="C:/log" />
        <property name="logging.file.prev" value="aal-" />
        <property name="max.file.size" value="1KB" />
        <property name="max.file.history" value="30" />
        <property name="charset" value="UTF-8" />
    
    
    
        
        
        
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d %p (%file: %line\)- %m%npattern>
                
                <charset>${charset}charset>
            encoder>
        appender>
    
    
        
    	
        <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>${logging.path}/${logging.file.prev}debug.logFile>
            
            
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                
                
                <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}debug_%i.logfileNamePattern>
                
                <maxHistory>${max.file.history}maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    
                    <maxFileSize>${max.file.size}maxFileSize>
                timeBasedFileNamingAndTriggeringPolicy>
            rollingPolicy>
            <encoder>
                
                
                
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                
    
                
                <charset>${charset}charset>
            encoder>
            
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUGlevel>
                <onMatch>ACCEPTonMatch>
                <onMismatch>DENYonMismatch>
            filter>
        appender>
    
    
        
        <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>${logging.path}/${logging.file.prev}info.logFile>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}info_%i.logfileNamePattern>
                <maxHistory>${max.file.history}maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${max.file.size}maxFileSize>
                timeBasedFileNamingAndTriggeringPolicy>
            rollingPolicy>
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                <charset>${charset}charset>
            encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFOlevel>
                <onMatch>ACCEPTonMatch>
                <onMismatch>DENYonMismatch>
            filter>
        appender>
    
    
        
        <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>${logging.path}/${logging.file.prev}warn.logFile>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}warn_%i.logfileNamePattern>
                <maxHistory>${max.file.history}maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${max.file.size}maxFileSize>
                timeBasedFileNamingAndTriggeringPolicy>
            rollingPolicy>
            <encoder>
            	
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                <charset>${charset}charset>
            encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARNlevel>
                <onMatch>ACCEPTonMatch>
                <onMismatch>DENYonMismatch>
            filter>
        appender>
    
    
        
        <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>${logging.path}/${logging.file.prev}error.logFile>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}error%i.logfileNamePattern>
                <maxHistory>${max.file.history}maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${max.file.size}maxFileSize>
                timeBasedFileNamingAndTriggeringPolicy>
            rollingPolicy>
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                <charset>${charset}charset>
            encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERRORlevel>
                <onMatch>ACCEPTonMatch>
                <onMismatch>DENYonMismatch>
            filter>
        appender>
    
    
    
    
        
        <root level="info">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="FILE_DEBUG" />
            <appender-ref ref="FILE_INFO" />
            <appender-ref ref="FILE_WARN" />
            <appender-ref ref="FILE_ERROR" />
        root>
    
        
        <springProfile name="prod">
            <logger name="com.answer.aal" level="error"/>
        springProfile>
    
        
        <springProfile name="dev">
            <root level="info">
                <appender-ref ref="CONSOLE"/>
                <appender-ref ref="FILE_DEBUG"/>
                <appender-ref ref="FILE_INFO"/>
                <appender-ref ref="FILE_WARN"/>
                <appender-ref ref="FILE_ERROR"/>
            root>
        springProfile>
    
    configuration>

 

2. logback 异步日志配置


    <configuration debug="true" scan="true" scanPeriod="30 seconds">
    
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] - %m%npattern>
            encoder>
        appender>
    
        <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>c:/log/info-%d{yyyyMMdd}_%i.logFileNamePattern>
                <MaxHistory>180MaxHistory>
                <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>1KBmaxFileSize>
                timeBasedFileNamingAndTriggeringPolicy>
            rollingPolicy>
            <encoder>
                
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                <charset>UTF-8charset>
            encoder>
            
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFOlevel>
                <onMatch>ACCEPTonMatch>
                <onMismatch>DENYonMismatch>
            filter>
        appender>
    
        
        <appender name="ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender">
            <discardingThreshold>0discardingThreshold>
            <queueSize>10queueSize>
            <appender-ref ref="FILE_INFO"/>
        appender>
    
        
        <root level="info">
            <appender-ref ref="ASYNC_LOG"/>
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="FILE_INFO"/>
        root>
    configuration>

 

3. logback-spring.xml - 2


<configuration>

    <property name="LOGS" value="./logs" />
	
	
    <springProperty scope="context" name="active" source="spring.profiles.active" />
    <springProperty scope="context" name="appName" source="spring.application.name" />

    <contextName>${appName}contextName>

    
    <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="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${HOSTNAME}]) %clr([${appName}]) %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(--){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint}[%line] %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            
            
            <pattern>${CONSOLE_LOG_PATTERN}pattern>
            <charset>utf8charset>
        encoder>
    appender>

    <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${LOGS}/${appName}.logfile>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d ${HOSTNAME} [${appName}] %p %C{1.} [%t] %m%nPattern>
            <charset>${charset}charset>
        encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOGS}/archived/${appName}-%d{yyyy-MM-dd}.%i.logfileNamePattern>
            <maxFileSize>10MBmaxFileSize>
            <totalSizeCap>10GBtotalSizeCap>
            <maxHistory>31maxHistory>
        rollingPolicy>

    appender>

    
    <root level="info">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    root>

    
    <logger name="com.answer.ai" level="debug" additivity="false">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    logger>

configuration>

 

你可能感兴趣的:(开发笔记,Spring)