什么是LogBack?
LogBack是一个日志框架,可以视为Log4j的升级版。
LogBack分为三个模块
- logback-core.jar :作为一下两个模块的基层
- logback-classic.jar :实现SLF4J API,使用后也可以轻松切换其他日志框架。如 log4j 或 java.util.logging
- logback-access.jar :整合servlet容器,如tomcat, jetty。提供HTTP-access 日志功能
一个简单的 logback实例
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);
}
}
该示例代码演示了 通过LoggerFactory获取Logger对象,并输出debug级别日志,并且使用StatusPrinter.print( )输出当前日志上下文信息。当没有编写日志配置文件时,控制台输出如下:
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.
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 找不到配置文件,就会启动默认配置。启用基本的ConsoleAppender。
一个Appender就是一个类,定义了日志输出位置。
包含:
- console
- files
- syslog
- tcp sockets
- jms
- 其他
Maven中依赖
<!--日志相关-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>