首页 > 代码库 > Logback手册 Chapter 1: Introduction

Logback手册 Chapter 1: Introduction

  

       翻译不周,多多包含

        ---------------------------------------------------------------------------------------分割线--------------------------------------------------------------------

Logback是继承自流行的log4j项目。作者经验丰富,作为积累了十年日志系统设计的经验的结晶,Logback既快又比现有的日志系统短小精悍。更夸张的说,LogBack提供了其他系统所不具有的独特又实用的特点。

Logback的三个包

slf4j-api.jar

logback-core.jar 

logback-classic.jar

先举个栗子:

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

public class HelloWorld1 {

  public static void main(String[] args) {

    Logger logger = LoggerFactory.getLogger(HelloWorld1.class);
    logger.debug("Hello world.");

  }
}


21:38:46.328 [main] DEBUG chapter1.HelloWorld1 - Hello world.

上一个例子里,名为HelloWorld的logger,主函数调用logger的debug方法,记录了“hello World ”的信息,我们说这个主函数包含了一条DEBUG等级的日志输出。

这里你需要知道的是,依据LogBack的的默认策略,如果没有手动配置,LogBack将会对根logger添加一个所谓的ConsoleAppender,因此我们的程序将日志打印在了控制台。


---------------

Logback可以通过内置的状态系统来报告她的内部状态信息。这个是通过调用StatusPrinter的print方法来输出,我们直接过栗子:

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

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;

public class HelloWorld2 {

  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld2");
    logger.debug("Hello world.");

    // print internal state
    LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
    StatusPrinter.print(lc);
  }
}


控制台输出结果:

22:34:56.229 [main] DEBUG chapters.introduction.HelloWorld2 - Hello world.
22:34:56,195 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
22:34:56,195 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
22:34:56,195 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
22:34:56,196 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.




由于缺失logback的配置文件logback-test.xml和lockback.xml(我会在接下来的章节中讨论),她采用了默认策略,也就是几个基础的ConsoleAppender。

Appender是一个决定日志输出目的类,它包括控制台、文件,系统日志,TCPSocket,JMS等等。我们可以根据自己的情况来创建我们自己的Appender



提示一点:如果遇到错误(errors)Logbcak会自动的在控制台打印他的内部状态



总之,在程序使用日志分三步

1配置logback环境

2在每个你想输出日志的类里,通过LoggerFactory的getLogger方法来生成一个Logger实例,用当前的类名,或者直接是这个类当做参数

3调用logger实例的方法来完成日志输出,比如debug(),info(),warn()以及error(),她会根据Appender的配置来输出日志