<logger name='org.hibernate.SQL' level='debug'/>

<!--控制台输出 -->
<appender name='consoleLog' class='ch.qos.logback.core.ConsoleAppender'>
    <encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'>
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}) - %highlight(%msg) %n</pattern>-->
        <pattern>${log.pattern}</pattern>
        <charset>utf8</charset>
    </encoder>
</appender>

<!-- 这也是用来保存输出所有级别的日志 -->
<appender name='fileInfoLog' class='ch.qos.logback.core.rolling.RollingFileAppender'>
    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
    <!-- 滚动策略,它根据时间来制定滚动策略.既负责滚动也负责触发滚动 -->
    <rollingPolicy class='ch.qos.logback.core.rolling.TimeBasedRollingPolicy'>
        <!-- 输出路径 -->
        <fileNamePattern>${LOG_HOME}/info/${LOG_NAME}.%d{yyyy-MM-dd}.%i.out</fileNamePattern>
        <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,
        则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除-->
        <cleanHistoryOnStart>true</cleanHistoryOnStart>
        <maxHistory>${maxHistory}</maxHistory>
        <!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
        <timeBasedFileNamingAndTriggeringPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'>
            <fileNamePattern>${LOG_HOME}/info/${LOG_NAME}.%d{yyyy-MM-dd}.%i.out</fileNamePattern>
            <maxFileSize>${log.max.size}</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <layout class='ch.qos.logback.classic.PatternLayout'>
        <pattern>%date %level [%thread] %logger [%file:%line] -%msg%n</pattern>
    </layout>
</appender>


<!-- 只用保存输出error级别的日志 -->
<appender name='fileErrorLog' class='ch.qos.logback.core.rolling.RollingFileAppender'>
    <rollingPolicy class='ch.qos.logback.core.rolling.TimeBasedRollingPolicy'>
        <fileNamePattern>${LOG_HOME}/error/${LOG_NAME}.%d{yyyy-MM-dd}.%i.out</fileNamePattern>
        <!-- 日志最大的历史 60天 -->
        <maxHistory>${maxHistory}</maxHistory>
        <timeBasedFileNamingAndTriggeringPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'>
            <maxFileSize>${log.max.size}</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <layout class='ch.qos.logback.classic.PatternLayout'>
        <pattern>%date %level [%thread] %logger [%file:%line] -%msg%n</pattern>
    </layout>
    <!-- 下面为配置只输出error级别的日志 -->
    <filter class='ch.qos.logback.classic.filter.LevelFilter'>
        <level>ERROR</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

<!-- root将级别为${log.root.level}及大于${log.root.level}的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console,其它同理 -->
<root level='${log.root.level}'>
    <appender-ref ref='consoleLog'/> <!--  标识这个appender将会添加到这个logger -->
    <appender-ref ref='fileInfoLog'/>
    <appender-ref ref='fileErrorLog'/>
</root>
Logback 配置文件解析及优化

原文地址: https://www.cveoy.top/t/topic/qmwD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录