更好的日志框架:logback
基本介绍
Logback 是由 log4j 创始人设计的另一个开源日志组件
官方网站: http://logback.qos.ch
它分为下面下个模块:
- logback-core:其它两个模块的基础模块
- logback-classic:它是 log4j 的一个改良版本,同时它完整实现了 slf4j API使你可以很方便地更换成其它日志系统如 log4j 或 JDK14 Logging
- logback-access:访问模块与 Servlet 容器集成提供通过 Http 来访问日志的功能
配置文件命名
根据不同的日志系统,命名规则不尽相同
- Logback:
logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
- Log4j:
log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
- Log4j2:
log4j2-spring.xml, log4j2.xml
- JDK (Java Util Logging):
logging.properties
引入依赖
<properties>
<log4j.version>1.7.7</log4j.version>
<logback.version>1.1.3</logback.version>
</properties>
<!-- log4j日志 start-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- log4j日志 end-->
配置文件内容(以 logback.xml 为例)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--http://logback.qos.ch/manual/configuration.html-->
<!--设置日志输出到控制台-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder的默认实现类是ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<!-- name值可以是包名或具体的类名:该包(包括子包)下的类或该类将采用此logger -->
<logger name="com.test.flink" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!--设置日志输出为文件-->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>warn.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<!--日志输出级别-->
<root level="WARN">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
使用 logback
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestLogback {
final static Logger logger = LoggerFactory.getLogger(TestLogback.class);
public static void main(String[] args) {
logger.info("Test logback ");
}
}
参考连接
更好的日志框架:logback
https://jface001.github.io/2020/10/10/更好的日志框架/