您的位置:首页 > 其它

logback 簡介

2015-12-16 17:15 267 查看
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中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: