logback.xml配置详解
时间: 2023-06-12 12:08:14 浏览: 95
Logback 是一个轻量级、快速、灵活的日志框架。在使用 Logback 时,我们通常需要对其进行配置,而配置文件的格式就是 logback.xml。下面是对 logback.xml 配置文件的详解:
1. 配置文件头部
```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
...
</configuration>
```
配置文件头部必须包含以上内容,其中 `<?xml version="1.0" encoding="UTF-8"?>` 表示 XML 版本和编码格式。
2. 定义日志输出格式
```xml
<configuration>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
...
</configuration>
```
定义日志输出格式的方式是使用 `property` 元素,其中 `name` 属性表示定义的属性名,`value` 属性表示属性的值。在上面的例子中,我们定义了一个名为 `LOG_PATTERN` 的属性,并将输出格式赋值给它。
3. 定义日志输出位置
```xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
...
</configuration>
```
`appender` 元素用于定义日志输出位置,其中 `name` 属性表示 appender 的名称,`class` 属性表示 appender 的类型。在上面的例子中,我们定义了一个名为 `STDOUT` 的控制台 appender。
4. 定义日志级别
```xml
<configuration>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
...
</configuration>
```
`root` 元素用于定义根 logger,其中 `level` 属性表示日志级别。在上面的例子中,我们将根 logger 的日志级别设置为 INFO。
5. 定义日志文件输出
```xml
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/myapp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/myapp-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
...
</configuration>
```
`RollingFileAppender` 元素用于定义日志文件输出,其中 `file` 属性表示日志文件的路径,`rollingPolicy` 子元素用于定义日志文件的滚动策略。在上面的例子中,我们定义了一个按时间滚动的策略,每天生成一个新的日志文件,保留最近 30 天的日志文件。
6. 常用配置
```xml
<configuration>
<property name="LOG_PATH" value="/var/log/myapp"/>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/myapp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/myapp-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
```
以上是一个常用的 Logback 配置文件示例,其中 `LOG_PATH` 定义了日志文件的路径,`LOG_PATTERN` 定义了日志输出格式,`STDOUT` 定义了控制台输出 appender,`FILE` 定义了日志文件输出 appender,`root` 定义了根 logger,输出到控制台和日志文件。
阅读全文