logback基本使用
参考
# logback官网
http://logback.qos.ch/manual/index.html
使用步骤
-
构建logback环境,logback-classic依赖,配置文件 logback-test.xml,logback.groovy,logback.xml
-
获取
org.slf4j.Logger
实例,通过org.slf4j.LoggerFactory
的静态方法getLogger()
-
调用logger的打印方法记录日志。这些日志会被记录到配置的
apperders
中。
Appender
Appender 是日志的输出目的地。可以是控制台,文件,tcp套接字,jms等。
入门
http://logback.qos.ch/manual/introduction.html
引入依赖
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
logback-classic.jar依赖于slf4j-api.jar和logback-core.jar,maven会自动导入这2个传递依赖。
-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
默认配置
如果类加载路径中没有找到logback配置文件,ConsoleAppender
将会被添加到 root 日志记录器中。
就日志记录而言,代码中只需要导入SLF4J类。
package com.mozq.logback02.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo1 {
public static void main(String[] args) {
Logger log = LoggerFactory.getLogger("com.mozq.logback02.demo.Demo1");
Logger log2 = LoggerFactory.getLogger(Demo1.class);
log.debug("这是测试信息");
log2.debug("这是测试信息2");
}
}
/*
运行结果:
12:20:02.439 [main] DEBUG com.mozq.logback02.demo.Demo1 - 这是测试信息
12:20:02.442 [main] DEBUG com.mozq.logback02.demo.Demo1 - 这是测试信息2
*/
使用lombok简化
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
package com.mozq.logback02.demo;
import lombok.extern.slf4j.Slf4j;
//需要idea安装lombok插件
@Slf4j
public class Demo3 {
public static void main(String[] args) {
log.debug("这是测试信息");
}
}
/*
12:22:39.311 [main] DEBUG com.mozq.logback02.demo.Demo3 - 这是测试信息
*/
logback内部状态信息
logback内置的状态系统可以报告logback的内部状态信息。StatusManager
可以访问logback生命周期中的事件。可以调用StatusPrinter
的静态方法print()
打印logback的内部状态。
package com.mozq.logback02.demo;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo2 {
public static void main(String[] args) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
StatusPrinter.print(loggerContext);
Logger log = LoggerFactory.getLogger("com.mozq.logback02.demo.Demo1");
log.debug("测试logback内部信息");
}
}
/*
12:31:45,446 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
12:31:45,446 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
12:31:45,446 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
12:31:45,450 |-INFO in ch.qos.logback.classic.BasicConfigurator@49993335 - Setting up default configuration.
12:31:45.497 [main] DEBUG com.mozq.logback02.demo.Demo1 - 测试logback内部信息
*/
logback加载
依次查找类路径下:logback-test.xml,logback.groovy,logback.xml 。
都没有找到则构建一个默认的ConsoleAppender
向控制台输出日志。