logback 配置详细教程
时间: 2023-07-28 14:20:44 浏览: 175
Logback 是一个灵活且功能强大的 Java 日志框架,可以通过配置文件或者 Java 代码来控制日志的输出。下面是一个详细的 Logback 配置教程。
## 1. 配置 Maven 依赖
首先,在项目的 pom.xml 文件中添加 Logback 的 Maven 依赖:
```xml
<!-- Logback 日志框架 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
```
## 2. 配置 logback.xml 文件
接下来,在 src/main/resources 目录下创建一个名为 `logback.xml` 的文件,并添加以下内容:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义日志输出的格式 -->
<property name="LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!-- 定义控制台输出的 appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 定义文件输出的 appender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 配置日志级别 -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
```
上面的配置文件定义了两个 appender:一个是控制台输出的 appender,一个是文件输出的 appender。其中,`name` 表示 appender 的名称,`class` 表示 appender 的类型,`encoder` 表示日志输出的格式。
同时,也定义了一个根日志记录器,设置了日志级别为 INFO,并将两个 appender 添加到根日志记录器中。
## 3. 配置日志级别
Logback 提供了五种日志级别,从高到低分别是 ERROR、WARN、INFO、DEBUG 和 TRACE。在配置文件中,可以通过设置根日志记录器的级别来控制日志输出的级别。
例如,如果将根日志记录器的级别设置为 INFO,则只会输出 INFO、WARN 和 ERROR 级别的日志,DEBUG 和 TRACE 级别的日志将被忽略。
## 4. 配置 appender
Logback 支持多种 appender,可以将日志输出到控制台、文件、数据库等。在配置文件中,可以根据需求来配置相应的 appender。
例如,上面的配置文件中定义了两个 appender:一个是控制台输出的 appender,一个是文件输出的 appender。控制台输出的 appender 会将日志输出到控制台,文件输出的 appender 会将日志输出到文件中。
## 5. 配置日志输出的格式
Logback 提供了丰富的日志输出格式,可以根据需求自定义日志输出的格式。在配置文件中,可以通过设置 appender 的 encoder 来定义日志输出的格式。
例如,上面的配置文件中设置了一个名为 `LOG_PATTERN` 的变量,用于定义日志输出的格式。然后在 appender 的 encoder 中使用 `${LOG_PATTERN}` 来引用该变量,实现日志输出格式的自定义。
## 6. 使用 Java 代码配置 Logback
除了使用配置文件外,Logback 还支持使用 Java 代码来配置。以下是一个简单的示例:
```java
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyApp {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(MyApp.class);
// 可以通过代码来配置 Logback
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
lc.reset();
// ...
logger.debug("Debug message");
logger.info("Info message");
logger.warn("Warn message");
logger.error("Error message");
}
}
```
上面的代码中,首先获取一个 logger,然后通过代码来配置 Logback。最后使用 logger 输出一些日志信息。需要注意的是,在使用 Java 代码配置 Logback 时,必须在使用 logger 之前进行配置。
## 总结
Logback 是一个功能强大、灵活且易于使用的 Java 日志框架,可以通过配置文件或者 Java 代码来控制日志的输出。在使用 Logback 时,需要注意配置文件的位置、日志级别、appender 的配置以及日志输出的格式。
阅读全文