jck28 - 小柒 -jslf4j日志框架

1,日志框架 slf4j**

  • slf4j是一种日志抽象/标准
  • 它需要结合日志具体实现进行使用
    • logback
    • log4j
    • java.util.logging

2,添加maven依赖**

<!-- slf4j 依赖 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.0-alpha6</version>
</dependency>
<!-- logback 依赖 -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.3.0-alpha12</version>
</dependency>

3, logback 配置文件

  • 文件名称

    • logback.xml
  • 存放地址

    • /src/main/resources
  • 作用

    • 控制台输出所有级别的日志
    • 日志信息保存到一个文件中
  • 参考配置:

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

    <!-- 控制台输出 CONSOLE -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n</pattern>
           <pattern>
<!--                优雅的日志格式-->
    %d{dd-MM-yyyy HH:mm:ss.SSS} %highlight(%-5level) %magenta([%thread]) %yellow(%logger{40}.%M\(%class{0}.java:%line\)) - %msg%throwable%n
</pattern>
        </encoder>
    </appender>

    <!-- 输入到日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <!-- 定义日志文件的存储地址 -->
        <!-- 不要使用相对路径 -->
        <file>/Users/xiaofo/logs/test.log</file>
        <encoder>
            <pattern>%date{HH:mm:ss.SSS} [%thread] %-6level %logger{50} - %msg %n</pattern>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="DEBUG">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

</configuration>

4,使用示例

// LogDemo.java

// 导入依赖
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Slf4jDemo {

    // 程序入口
    public static void main(String[] args) {

        // 创建实例
        Logger logger = LoggerFactory.getLogger(Slf4jDemo.class);
        
        // 输出日志
        logger.error("hogwarts:error");
        logger.warn("hogwarts:warn");
        logger.info("hogwarts:info");
        logger.debug("hogwarts:debug");
        logger.trace("hogwarts:trace");
    }
}