• Logback的简单使用


    1、前言


     

    查了很多资料,都说logback的性能都要比log4j的性能要好,logback逐渐要取代log4j。今天对logback作一个简单的整理。

    2、loback的坐标依赖

    <!--
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.0.6</version>
        </dependency>
    -->
    
    <!-- 该依赖包括了上面两个依赖,所以只要引入该依赖即可 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.6</version>
    </dependency>

    3、配置文件:logback.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration
        xmlns="http://ch.qos.logback/xml/ns/logback"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd">
        <property name="LOG_HOME" value="tp/log"/>
        <!-- 输出到控制台 -->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" >
            <!-- 输出的格式 -->
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:  %msg%n</pattern>
            </encoder>
        </appender>
    
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 配置滚动的策略 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 日志名称的格式 -->
                <fileNamePattern>${LOG_HOME}/logback.log.%d{yyyy-MM-dd}</fileNamePattern>
                <!-- 保存的最长时间:天数 -->
                <MaxHistory>1</MaxHistory>
            </rollingPolicy>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:  %msg%n</pattern>
            </encoder>
        </appender>
    
        <!--
        注意:
        level属性也可以直接写在logger上,如:
        <logger name="ws.log.logback.LogbackTest" additivity="false" level="INFO">
            <appender-ref ref="STDOUT" />
        </logger>
        -->
        <logger name="ws.log.logback.LogbackTest" additivity="false">
            <level value="INFO" />
            <appender-ref ref="STDOUT" />
        </logger>
    
        <!-- 相当于logger元素,只是name值已经确定为root了 -->
        <root level="warn">
            <appender-ref ref="STDOUT" />
        </root>
    </configuration>

    4、代码实例:

    //注意导入的包都是slf4j的包
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class LogbackTest {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(LogbackTest.class);
    
        public static void main(String[] args) {
            LOGGER.trace("logback的--trace日志--输出了");
            LOGGER.debug("logback的--debug日志--输出了");
            LOGGER.info("logback的--info日志--输出了");
            LOGGER.warn("logback的--warn日志--输出了");
            LOGGER.error("logback的--error日志--输出了");
        }
    }

    5、效果展示

    按照logger指定的输出级别输出,会覆盖root指定的级别。

    6、注意:

    loger和logger的问题,通过查询文档。才了解logback中是没有loger元素的。我被技术博客误导了。其实在测试时候已经出现错误日志了,如最后一张图紫红区域,是当时疏忽了。笔者已经更改。为了方便可以在xml中配置名称空间,就会有相应的提示,就不会这样的错误。如果不配置,会提示用过的标签,不管对错都会提示。这样会产生误区。名称空间可以参考该博客的logback.xml配置。


    参考资料:

    技术博客:http://www.cnblogs.com/warking/p/5710303.html 【该技术博客中的loger就是指logger】
    官网:https://logback.qos.ch/manual/configuration.html
    译文:https://www.oschina.net/translate/logging-in-java-switching-to-logback

  • 相关阅读:
    GlusterFS 配置及使用
    zabbix-监控Linux服务器
    ansible安装及使用
    使用ansible 完成yum安装lamp环境
    mysql基础
    shell基础
    shell
    Javascript动画效果(四)
    Javascript动画效果(三)
    Javascript动画效果(二)
  • 原文地址:https://www.cnblogs.com/AlanWilliamWalker/p/11122218.html
Copyright © 2020-2023  润新知