The logback manual #01# Introduction
阿新 • • 發佈:2018-11-19
依賴包如下pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample.logback</groupId> <artifactId>test-logback</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!---source 1.5 中不支援 try-with-resources--> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/junit/junit --><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> </dependency> </dependencies> </project>
例子程式:
package org.sample.logback; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.core.util.StatusPrinter; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LogbackTest { @Test public void testLogback() { Logger logger = LoggerFactory.getLogger(LogbackTest.class); logger.debug(logger.getName()); // 這個logger(記錄器)名字叫org.sample.logback.LogbackTest logger.debug("Hello world."); // 一個級別為DEBUG的logging(記錄)語句,並帶有訊息“Hello world”。 // 不論專案大小,logging語句並不會有什麼改變(總是像上面那樣簡單),只是配置不同! /* logback的預設配置策略:當未找到預設配置檔案時, logback將把ConsoleAppender新增到root logger(根記錄器). PS. appender是一種可以被視為“輸出目的地”的類。所以上 面這句話言下之意即:console將被作為root logger的輸出目 的地之一。 */ // 列印logback的內部狀態,這依賴於具體的logback類,而不是slf4j API // 當然,在出現errors時,logback會自動列印內部狀態而無需開啟 LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusPrinter.print(lc); // 啟用“列印logback內部狀態”的模式,並不是只打印一次。這在診斷logback相關問題的時候非常有用! } } /* output= 21:52:55.068 [main] DEBUG org.sample.logback.LogbackTest - org.sample.logback.LogbackTest 21:52:55.068 [main] DEBUG org.sample.logback.LogbackTest - Hello world. 21:52:55,037 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 21:52:55,037 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 21:52:55,037 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml] 21:52:55,037 |-INFO in [email protected] - Setting up default configuration. */