当前位置:网站首页>logback.xml配置不同级别日志,设置彩色输出

logback.xml配置不同级别日志,设置彩色输出

2022-07-07 14:12:00 kill-java

yml或者properties配置文件

logging.config=classpath:logback.xml

resources目录下新建logback.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!--根标签-->
<configuration>
    <!--设置变量,name为变量名,value为值,可以使用${
    变量名}方式使用-->
    <property name="DIR" value="log"/>
    <property name="LOG_HOME" value="/F:/project/logs"/>
    <property name="NAME" value="log"/>
    <property name="MDC_LOG_PATTERN"
              value="%red(%d{yyyy-MM-dd'T'HH:mm:ss.SSS}) %green(%p filesystem %t) %blue(%logger{50}) %yellow([line:%L %msg]%n)"></property>

    <!-- 运行日志记录器,日期滚动记录 -->
    <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${
    LOG_HOME}/${
    NAME}/info/${
    NAME}.log</file>
        <!-- 日志记录器的滚动策略,按日期,按大小记录-->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <fileNamePattern>${
    LOG_HOME}/${
    NAME}/info/${
    NAME}-%d{
    yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 除按日志记录之外,还配置了日志文件不能超过50M,若超过50M,日志文件会以索引0开始,  命名日志文件,例如bizlog-biz-20181219.0.log -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
                <!--保存时间3-->
                <!--<MaxHistory>3</MaxHistory>-->
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <!-- 日志文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{
    yyyy/MM/dd' 'HH:mm:ss.SSS} %X{
    req.requestId}[line:%L %msg] %n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 此日志文件只记录info级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${
    LOG_HOME}/${
    NAME}/error/${
    NAME}.log</file>
        <!-- 日志记录器的滚动策略,按日期,按大小记录-->

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <fileNamePattern>${
    LOG_HOME}/${
    NAME}/error/${
    NAME}-%d{
    yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 除按日志记录之外,还配置了日志文件不能超过50M,若超过50M,日志文件会以索引0开始,  命名日志文件,例如bizlog-biz-20181219.0.log -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
                <!--保存时间3-->
                <!--<MaxHistory>3</MaxHistory>-->
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <!-- 日志文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{
    yyyy/MM/dd' 'HH:mm:ss.SSS} %X{
    req.requestId}[line:%L %msg] %n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 此日志文件只记录info级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>error</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!--ConsoleAppender是打印到控制台的-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--encoder 默认配置为PatternLayoutEncoder-->
        <encoder>
            <pattern>${
    MDC_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>all</level>
        </filter>
    </appender>

    <!--根loger。只有一个level属性,应为已经被命名为"root".-->
    <root level="info">
        <appender-ref ref="info"/>
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="error"/>
    </root>

</configuration>
原网站

版权声明
本文为[kill-java]所创,转载请带上原文链接,感谢
https://blog.csdn.net/zq6269/article/details/125621239