更好的日志框架:logback

基本介绍

Logback 是由 log4j 创始人设计的另一个开源日志组件

官方网站: http://logback.qos.ch

它分为下面下个模块:

  • logback-core:其它两个模块的基础模块
  • logback-classic:它是 log4j 的一个改良版本,同时它完整实现了 slf4j API使你可以很方便地更换成其它日志系统如 log4j 或 JDK14 Logging
  • logback-access:访问模块与 Servlet 容器集成提供通过 Http 来访问日志的功能

配置文件命名

根据不同的日志系统,命名规则不尽相同

  • Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
  • Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
  • Log4j2:log4j2-spring.xml, log4j2.xml
  • JDK (Java Util Logging):logging.properties

引入依赖

<properties>
        <log4j.version>1.7.7</log4j.version>
        <logback.version>1.1.3</logback.version>
    </properties>

<!-- log4j日志 start-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <!-- log4j日志 end-->

配置文件内容(以 logback.xml 为例)

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <!--http://logback.qos.ch/manual/configuration.html-->
    <!--设置日志输出到控制台-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder的默认实现类是ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>
    <!-- name值可以是包名或具体的类名:该包(包括子包)下的类或该类将采用此logger -->
    <logger name="com.test.flink" level="INFO" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>

    <!--设置日志输出为文件-->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>warn.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
        </encoder>
    </appender>

    <!--日志输出级别-->
    <root level="WARN">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

使用 logback

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestLogback {
  final static Logger logger = LoggerFactory.getLogger(TestLogback.class);
  public static void main(String[] args) {
    logger.info("Test logback ");
  }
}

参考连接

https://www.jianshu.com/p/638b4e2c4068

https://www.cnblogs.com/warking/p/5710303.html


更好的日志框架:logback
https://jface001.github.io/2020/10/10/更好的日志框架/
作者
惊羽
发布于
2020年10月10日
许可协议