美文网首页
logback 日志使用模版

logback 日志使用模版

作者: steamed_bun | 来源:发表于2018-07-25 09:38 被阅读0次

    https://logback.qos.ch/manual/index.html logback 官方文档

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <!-- 在此处定义可以使用 ${name} 在下文获取 value -->
        <property name = "LOG_HOME" value="logs"/>
        <property name="file" value="file"/>
        <property name="infoFile" value="info"/>
        <property name="errorFile" value="error"/>
    
        <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
            <layout class = "ch.qos.logback.classic.PatternLayout">
                <pattern>
                    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger{50}:日志路径显示50个字符,如果显示不完则简写 %msg:日志消息,%n是换行符-->
                    %d{HH:mm:ss.SSS} [%t] %-5level %logger{50} - %msg%n
                </pattern>
            </layout>
        </appender>
    
        <!-- 简单只是写入文件中 -->
        <appender name="${file}" class="ch.qos.logback.core.FileAppender">
            <file>
                ${LOG_HOME}/${file}.log
            </file>
            <encoder>
                <!-- %-4relative 打印出程序运行到打印日志的毫秒数,-4:与[%thread] 的距离4个字符  -->
                <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
         </encoder>
        </appender>
    
        <!-- 按照一定的规则滚动生成日志文件 -->
        <appender name="${infoFile}" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 此处若加入file 则 fileNamePattern 无用 -->
            <!--
            <file>
                ${LOG_HOME}${infoFile}.log
            </file>
            -->
            <!--
                规则:根据文件的大小和时间共同控制
                如下: 日志文件按日期记录,同一天内,若日志文件大小等于或大于5KB,则按0、1、2...顺序分别命名
                有不同的规则可以选择:
                TimeBasedRollingPolicy 只根据时间
                SizeBasedTriggeringPolicy:只根据文件大小
                ...
    
                每个规则的子节点不同:
                maxFileSize:每个文件最大值
                totalSizeCap:所有文件最大值
                MaxHistory:最多保留多久的日志 如下是30天内
                fileNamePattern:文件命名规则 %i从0开始自增,如果同一天的文件已经超出最大文件范围,则会生成第二个文件
                /logs/info-2018-07-24-0.log
            -->
            <rollingPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${LOG_HOME}/${infoFile}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
                <maxFileSize>5KB</maxFileSize>
                <totalSizeCap>10MB</totalSizeCap>
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
            <!--
                分级过滤日志:LevelFilter
                如下:接受info以上的,但是不写入error
                <level>info</level>
                <onMatch>ACCEPT</onMatch>
                <level>error</level>
                <onMatch>DENY</onMatch>
    
                如下:只接受info
                <level>info</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>info</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <encoder>
                <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
         </encoder>
        </appender>
    
        <appender name="{errorFile}" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${LOG_HOME}/${errorFile}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
                <maxFileSize>5KB</maxFileSize>
                <totalSizeCap>10MB</totalSizeCap>
                <MaxHistory>30</MaxHistory>
            </rollingPolicy>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>error</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <encoder>
                <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <Root level="info">
            <appender-ref ref="Console"/>
            <appender-ref ref="${file}"/>
            <appender-ref ref="${infoFile}"/>
            <appender-ref ref="{errorFile}"/>
        </Root>
    </configuration>
    

    相关文章

      网友评论

          本文标题:logback 日志使用模版

          本文链接:https://www.haomeiwen.com/subject/wdgumftx.html