SpringBoot整合logback日志框架
阅读原文时间:2023年07月10日阅读:1

在resource下创建一个名称为 logback-spring.xml文件

  <!--日志文件夹存放的名称-->  
<contextName>demo-test</contextName>

<!--各项目日志保存统一父目录->路径自己设置绝对路径和相对路径都可以-->  
<property name="LOG\_DIR" value="./log/" />  
<!--最大保存天数-->  
<property name="KEEP\_MAX\_DAY" value="180" />  
<!--总最大保存文件大小-->  
<property name="KEEP\_TOTAL\_MAX\_SIZE" value="5GB" />  
<!--单文件最大保存文件大小-->  
<property name="KEEP\_FILE\_MAX\_SIZE" value="100MB" />

<!--输出到控制台-->  
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">  
    <encoder>  
        <pattern>%d{HH:mm:ss.SSS} \[%thread\] %-5level %logger - %msg%n</pattern>  
    </encoder>  
</appender>

<!--输出到ERROR事件记录文件-->  
<appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <filter class="ch.qos.logback.classic.filter.LevelFilter">  
        <level>ERROR</level>  
        <onMatch>ACCEPT</onMatch>  
        <onMismatch>DENY</onMismatch>  
    </filter>

    <file>${LOG\_DIR}/${CONTEXT\_NAME}/error/${CONTEXT\_NAME}-error.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  
        <fileNamePattern>${LOG\_DIR}/${CONTEXT\_NAME}/error/${CONTEXT\_NAME}-error-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>  
        <maxFileSize>${KEEP\_FILE\_MAX\_SIZE}</maxFileSize>  
        <maxHistory>${KEEP\_MAX\_DAY}</maxHistory>  
        <totalSizeCap>${KEEP\_TOTAL\_MAX\_SIZE}</totalSizeCap>  
    </rollingPolicy>

    <encoder>  
        <pattern>%d{HH:mm:ss.SSS} \[%thread\] %-5level %logger - %msg%n</pattern>  
    </encoder>

</appender>

<!--输出到WARN事件记录文件-->  
<appender name="warnFile" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <filter class="ch.qos.logback.classic.filter.LevelFilter">  
        <level>WARN</level>  
        <onMatch>ACCEPT</onMatch>  
        <onMismatch>DENY</onMismatch>  
    </filter>

    <file>${LOG\_DIR}/${CONTEXT\_NAME}/warn/${CONTEXT\_NAME}-warn.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  
        <fileNamePattern>${LOG\_DIR}/${CONTEXT\_NAME}/warn/${CONTEXT\_NAME}-warn-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>  
        <maxFileSize>${KEEP\_FILE\_MAX\_SIZE}</maxFileSize>  
        <maxHistory>${KEEP\_MAX\_DAY}</maxHistory>  
        <totalSizeCap>${KEEP\_TOTAL\_MAX\_SIZE}</totalSizeCap>  
    </rollingPolicy>

    <encoder>  
        <pattern>%d{HH:mm:ss.SSS} \[%thread\] %-5level %logger - %msg%n</pattern>  
    </encoder>

</appender>

<!--输出到INFO事件记录文件-->  
<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <filter class="ch.qos.logback.classic.filter.LevelFilter">  
        <level>INFO</level>  
        <onMatch>ACCEPT</onMatch>  
        <onMismatch>DENY</onMismatch>  
    </filter>

    <file>${LOG\_DIR}/${CONTEXT\_NAME}/info/${CONTEXT\_NAME}-info.log</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  
        <fileNamePattern>${LOG\_DIR}/${CONTEXT\_NAME}/info/${CONTEXT\_NAME}-info-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>  
        <maxFileSize>${KEEP\_FILE\_MAX\_SIZE}</maxFileSize>  
        <maxHistory>${KEEP\_MAX\_DAY}</maxHistory>  
        <totalSizeCap>${KEEP\_TOTAL\_MAX\_SIZE}</totalSizeCap>  
    </rollingPolicy>

    <encoder>  
        <pattern>%d{HH:mm:ss.SSS} \[%thread\] %-5level %logger - %msg%n</pattern>  
    </encoder>

</appender>

<logger name="org.springframework.jdbc.core" level="debug" additivity="false">  
    <appender-ref ref="console" />  
</logger>

<logger name="com.springboot.web.dynamic\_debug" level="debug" additivity="false">  
    <appender-ref ref="console" />  
</logger>

<root level="info">  
    <appender-ref ref="console" />  
    <appender-ref ref="errorFile" />  
    <appender-ref ref="warnFile" />  
    <appender-ref ref="infoFile" />  
</root>

然后yml配置添加

logging:
config: classpath:logback-spring.xml
level:
com.example.demotest.*: debug

com.example.demotest.* 这个是项目的包名 根据自己实际的来

然后启动就可以了