我是靠谱客的博主 明理咖啡,最近开发中收集的这篇文章主要介绍sl4j日志配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  由于logback性能优,加载速度快,且能自动清理和压缩等优点。记录一下个人在使用时配置。

1、去掉pom.xml中所有的log4j2相关的引用(否则配置不生效)

2、配置logback.xml文件

<?xml version="1.0" encoding="utf-8"?>
<!--级别从高到低 OFF -> FATAL -> ERROR -> WARN ->INFO -> DEBUG ->TRACE -> ALL -->
<!--日志输出规则,根据root配置级别,日志输出时,级别高于root的级别时才会输出-->
<!--配置每个filter 过滤掉输出文件里面,会出现高级别日志-》低级别的日志,通过filter配置日志输出级别,-->
<!--scan属性为true时,当配置文件发生改变,将会被重新加载,默认为true
    scanPeriod设置检测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认是毫秒,当scan为true时,此属性生效。默认时间为1分钟
    debug 当此属性为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认为false-->
<configuration scan="true"  scanPeriod = "60 seconds" debug = "false">
    <!--动态日志级别-->
    <jmxConfigurator/>
    <!--定义日志文件输出位置-->
    <property name="log_dir" value="E:/logs/imoslog/ICM"/>
    <!--<property name="log_dir" value="/var/log/imoslog/ICM"/>-->
    <!--日志输出格式-->
    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n "/>
    <!--控制台日志输出格式-->
    <property name="debug.log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%thread) %boldGreen(%logger{50}-%msg%n)"/>
    <!--ConsoleAppends控制台输出日志-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${debug.log.pattern}</pattern>
        </encoder>
    </appender>
    <!--ERROR级别日志-->
    <!--滚动记录日志文件,将日志记录到日志文件-->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--过滤器,日志级别等于配置的级别时会根据onMatch 和 onMismatch 接受或拒绝日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!--滚动策略,最常用的就是根据时间来制定滚动策略,触发滚动-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志输出位置,按天滚动并压缩-->
            <fileNamePattern>${log_dir}/info/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!--可选节点,控制保留的归档文件的最大数量,查出数量就删除旧文件-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志最大留存期-->
            <maxHistory>360</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--INFO级别日志-->
    <!--滚动记录日志文件,将日志记录到日志文件-->
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--过滤器,日志级别等于配置的级别时会根据onMatch 和 onMismatch 接受或拒绝日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!--滚动策略,最常用的就是根据时间来制定滚动策略,触发滚动-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志输出位置,按天滚动并压缩-->
            <fileNamePattern>${log_dir}/error/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!--可选节点,控制保留的归档文件的最大数量,查出数量就删除旧文件-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志最大留存期-->
            <maxHistory>360</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="console"/>
        <appender-ref ref="INFO" />
        <appender-ref ref="ERROR" />
    </root>

</configuration>

3、application.properties配置

logging.config=classpath:spring-logback.xml

4、日志打印

  private final static Logger logger = LoggerFactory.getLogger(StudyApplication.class);
    public static void main(String[] args) {
        logger.info("项目启动......................");
        SpringApplication.run(StudyApplication.class, args);
        logger.info("项目运行中......................");
    }

 

最后

以上就是明理咖啡为你收集整理的sl4j日志配置的全部内容,希望文章能够帮你解决sl4j日志配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部