日志框架 Logback 官方手册(第一章:简介)

以下内容翻译整理自logback官方手册,地址:logback官方手册


安装配置

为了运行文档中提供的示例,需要将以下jar添加到类路径中

  • logback-core-1.3.0-alpha4.jar
  • logback-classic-1.3.0-alpha4.jar
  • logback-examples-1.3.0-alpha4.jar
  • slf4j-api-1.8.0-beta1.jar

logback-*.jar文件是logback发行版的一部分,而SLF4J -api-1.8.0-beta1.jar附带SLF4J,是一个单独的项目。

要在Maven项目中使用logback-classic,请在项目的pom文件中声明以下依赖项。


  ch.qos.logback
  logback-classic
  1.3.0-alpha4

注意,除了logback-classic.jar之外,根据Maven的传递性规则,上述声明将自动将slf4j-api.jarlogback-core.jar拉入项目。

如果要在Maven项目中包含日志回溯访问,请在项目的pom文件中声明以下依赖项。


  ch.qos.logback
  logback-access
  1.3.0-alpha4

示例1:日志基本模板

package com.wangbo.cto.logback;

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

/**
 * @date 2019/9/12 23:43
 * @auther wangbo
 */
public class HelloWorld1 {
    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger("com.wangbo.cto.logback.HelloWorld1");
        logger.debug("Hello World.");
    }
}

main()方法的第一行,通过调用LoggerFactory类中的静态方法getLogger(),为名为logger的变量分配了一个Logger实例。这个logger被命名为com.wangbo.cto.logback.HelloWorld1

注意,上面的示例没有引用任何logback类。在大多数情况下,就日志记录而言,类只需要导入SLF4J类。因此,对于绝大多数类而言,都只会使用到SLF4J API,不会用到logback

运行该方法,控制台会打印出下面内容,根据logback的默认配置策略,当没有找到默认配置文件时,logback将向根日志记录器添加一个ConsoleAppender

23:59:21.955 [main] DEBUG com.wangbo.cto.logback.HelloWorld1 - Hello World.

示例2:日志内部状态

logback可以使用内置的状态系统报告关于其内部状态的信息。可以通过名为StatusManager的组件访问logback生命周期中发生的重要事件。现在,让我们通过调用StatusPrinter类的静态print()方法来指示logback打印其内部状态。

package com.wangbo.cto.logback;

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @date 2019/9/12 23:43
 * @auther wangbo
 */
public class HelloWorld1 {
    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger("com.wangbo.cto.logback.HelloWorld1");
        logger.debug("Hello World.");
        //打印logback内部状态
        LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
        StatusPrinter.print(lc);
    }
}

执行代码,打印出以下内容。

00:08:27.106 [main] DEBUG com.wangbo.cto.logback.HelloWorld1 - Hello World.
00:08:27,074 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
00:08:27,074 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
00:08:27,074 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
00:08:27,074 |-INFO in ch.qos.logback.classic.BasicConfigurator@45283ce2 - Setting up default configuration.

logback提示说,由于未能找到logback -test.xmllogback.groovylogback .xml配置文件,它使用默认策略配置自己,默认策略是一个基础的ConsoleAppenderAppender可以被看作是一个输出目的地的类。Appender可以作为许多不同的目的地,包括控制台、文件、系统记录、TCP套接字、JMS等等。用户还可以根据自己的具体情况创建自定义的Appender

注意,如果出现错误,logback将自动在控制台上打印其内部状态。

logback的内部状态信息对于诊断与logback相关的问题非常有用。下面列出了在应用程序中启用日志记录所需的三个步骤。
(1)配置logback环境。
(2)在希望执行日志记录的每个类中,通过调用org.slf4j.LoggerFactory类的getLogger()方法,将当前类名或类本身作为参数,获取一个Logger实例。
(3)使用logger实例调用它的打印方法,即debug()、info()、warn()和error()方法。将会在配置的appenders上生成日志输出。

你可能感兴趣的:(日志框架 Logback 官方手册(第一章:简介))