zoukankan      html  css  js  c++  java
  • springboot-用logback将日志文件按等级保存到不同文件

    springboot-用logback将日志文件按等级保存到不同文件

    案例:

    例如项目基本包名为com.xxx,将该包下的所有日志按debug、info、warn、error等级分别保存到D:/log文件夹下的logback_debug、logback_info、logback_warn、

    logback_error文件中。每日凌晨0点将日志文件归档保存为zip压缩包,每个压缩包最大50M,若压缩包文件大小超过50M,将会被保存为多个压缩包。最多保留最近

    30天的归档日志文件。


    logback-spring.xml配置文件如下图所示:

    <configuration debug="false" scan="true" scanPeriod="10 seconds">
        <!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->
        <!--<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>-->
    
        <contextName>logback</contextName>
        
        <!--输出sql语句-->
        <logger name="com.xxx" level="debug"/>
        <property name="path" value="D:/log"></property>
        <property name="maxHistory" value="30"/>
        <property name="maxFileSize" value="50MB"/>
    
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>debug</level>
            </filter>
            <encoder>
                <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
                </pattern>
            </encoder>
        </appender>
    
        <appender name="debug_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${path}/logback_debug.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 每天一归档 -->
                <fileNamePattern>${path}/logback_debug.log.%d{yyyy-MM-dd}-%i.zip</fileNamePattern>
                <maxHistory>${maxHistory}</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy
                        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${maxFileSize}</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
                </pattern>
            </encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <appender name="info_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${path}/logback_info.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 每天一归档 -->
                <fileNamePattern>${path}/logback_info.log.%d{yyyy-MM-dd}-%i.zip</fileNamePattern>
                <maxHistory>${maxHistory}</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy
                        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${maxFileSize}</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
                </pattern>
            </encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <appender name="warn_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${path}/logback_warn.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 每天一归档 -->
                <fileNamePattern>${path}/logback_warn.log.%d{yyyy-MM-dd}-%i.zip</fileNamePattern>
                <maxHistory>${maxHistory}</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy
                        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${maxFileSize}</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
                </pattern>
            </encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
    
        <appender name="error_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${path}/logback_error.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 每天一归档 -->
                <fileNamePattern>${path}/logback_error.log.%d{yyyy-MM-dd}-%i.zip</fileNamePattern>
                <maxHistory>${maxHistory}</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy
                        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>${maxFileSize}</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
                </pattern>
            </encoder>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <root>
            <level value="info"/>
            <appender-ref ref="console"/>
            <appender-ref ref="debug_file"/>
            <appender-ref ref="info_file"/>
            <appender-ref ref="warn_file"/>
            <appender-ref ref="error_file"/>
        </root>
    
    </configuration>
  • 相关阅读:
    深入浅出Google Android这本书怎么样
    iPhone开发实战这本书怎么样
    POST数据提交,关于System.Web.HttpUtility.HtmlEncode与System.Web.HttpUtility.UrlEncode的区别
    强烈推荐领域驱动设计与模式实战
    重构HTML: 改善Web应用的设计这本书怎么样
    关于C#与VB.NET网络通信开发实战的读后感
    关于Flex 3权威指南的读后感
    关于iPhone游戏编程实例的读后感
    强烈推荐iPhone开发秘籍
    强烈推荐高效程序员的45个习惯:敏捷开发修炼之道
  • 原文地址:https://www.cnblogs.com/zuidongfeng/p/9135864.html
Copyright © 2011-2022 走看看