logback 簡介

来源:互联网 发布:淘宝新店3个月没销量 编辑:程序博客网 时间:2024/06/07 05:16

logback意在接任log4j,由log4j創始人設計。


hello world

 需要slf4j-api.jar    logback-core.jar    logback-classic.jar

package chapters.introduction;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloWorld1 {  public static void main(String[] args) {    Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1");    logger.debug("Hello world.");  }}

變量logger指向類LoggerFactory調用靜態方法getLogger返回的一個Logger實例。這個logger被命名爲"chapters.introduction.HelloWorld1"。main函數調用了logger的debug方法,以"Hello World" 爲參數。我們通常說,main函數包含了一條持有消息"Hello World" 的DEBUG級別的logging statement。

由於使用默認設置,所以logback添加ConsoleAppender至root logger,輸出如下。

20:49:07.962 [main] DEBUG chapters.introduction.HelloWorld1 - Hello world.

logback可以使用內置的status系統來報告其內部的state,logback生命週期中發生的重要事件,可以通過StatusManager組件訪問。


package chapters.introduction;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);  }}
輸出

12:49:22.203 [main] DEBUG chapters.introduction.HelloWorld2 - Hello world.12:49:22,076 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]12:49:22,078 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.
意思是,未能發現 logback-test.xml 和 logback.xml配置文件,logback將使用默認配置,即一個基礎的ConsoleAppender。Appender是一個可以被看作輸出目的地的類,可以是console, files, Syslog, TCP Sockets, JMS 等,用戶還可以根據具體情況創建自己的Appenders。

注意,errors時,logback會自動將內部state打印在consle。


開啓日誌的3個必要步驟:

1,配置logback環境

2,在每個你要記錄日誌的類中,通過org.slf4j.LoggerFactory 的getLogger()取得一個Logger實例,將類名或類本身當作參數傳入。

3,使用logger實例的打印方法,即debug(), info(), warn() and error() ,這會將日誌記錄輸出至配置好的appenders中。


0 0
原创粉丝点击