SpringBoot配置logback及遇到问题

项目需要,将日志按照INFO,WARN,ERROR分级,现将配置文件做记录。

将配置文件logback.log置于src/main/resourses目录下,配置如下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="30 seconds">
    <property name="app.name" value="kafka_webSocket_services"/>
    <property name="log.base" value="logs"/>
    <contextName>${app.name}</contextName>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{uuid} [%thread] [%-5p] [%F:%L] %m%n</pattern>
        </encoder>
    </appender>
    <!--info_log-->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.base}/${app.name}_info.log</file>
        <encoder charset="UTF-8">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{uuid} [%thread] [%-5p] [%F:%L] %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.base}/%d{yyyyMMdd}/${app.name}_info_%d{yyyyMMdd}_%i.log.zip</fileNamePattern>
            <maxFileSize>3GB</maxFileSize>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!--warn_log-->
    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.base}/${app.name}_warn.log</file>
        <encoder charset="UTF-8">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{uuid} [%thread] [%-5p] [%F:%L] %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.base}/%d{yyyyMMdd}/${app.name}_warn_%d{yyyyMMdd}_%i.log.zip</fileNamePattern>
            <maxFileSize>3GB</maxFileSize>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!--error_log-->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.base}/${app.name}_error.log</file>
        <encoder charset="UTF-8">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{uuid} [%thread] [%-5p] [%F:%L] %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.base}/%d{yyyyMMdd}/${app.name}_error_%d{yyyyMMdd}_%i.log.zip</fileNamePattern>
            <maxFileSize>3GB</maxFileSize>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="WARN_FILE"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    </root>

<!--    <logger name="com.lat.theonex.dao" level="DEBUG" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>

    <logger name="com.lat.theonex.mybatis.dao" level="DEBUG" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>-->
</configuration>

首先配置多个appender标签,分别记录不同级别的日志内容。

appender相当于一个日志执行块,在配置的root节点和logger节点中加载这些appender即可实现输出配置的多种日志。

logger继承root,类似java的继承,logger中定义的级别,会覆盖root中的级别。

logger中的name="com.lat.theonex.mybatis.dao"  意为此logger管理的代码范围,类似于spring的扫包。

详细规则可参考Spring Boot干货系列:(七)默认日志框架配置


遇到问题:

<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
中的onMismatch标签只能在依赖logback,如果一代log4j或者log4j2则会报错。





猜你喜欢

转载自blog.csdn.net/mafei6827/article/details/79645273