logback-demo/readme.md

86 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2022-06-06 17:08:37 +08:00
## logback的基础使用演示
### jar文件下载
logback: `https://repo1.maven.org/maven2/ch/qos/logback/`
slf4j: `https://repo1.maven.org/maven2/org/slf4j/`
下载后的jar文件: `logback-classic-1.2.9.jar``logback-core-1.2.9.jar``slf4j-api-1.7.9.jar`
### 配置文件
> 本次演示的版本为1.2.9如果您使用的是更高版本的jar文件那么需要将配置进行规范化一些在官网可以使用一键转换进行互转地址如下
> `https://logback.qos.ch/translator/dsl/xml2Canon/asHTML`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义变量 日志输出路径-->
<property name="log.path" value="/var/me/logback" />
<!--将日志输出到控制台-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<!--将日志输出到一个完整的文件-->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${log.path}/myApp.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<!--将日志输出到可切分的文件-->
<appender name="ROLL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/roll-back.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--根节点的输出日志定义-->
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
<appender-ref ref="ROLL_FILE" />
</root>
<!--自定义输出日志,该日志会继承<root>节点的appender如果自己在添加appender会输出双份日志-->
<logger name="custom" level="error" />
</configuration>
```
### 配置说明
2022-06-08 15:27:33 +08:00
#### configuration 节点配置
```xml
<!-- scan程序运行时配置文件被修改是否重新加载。true=重新加载false=不重新加载默认为true; -->
<!-- scanPeriod监测配置文件被修改的时间间隔scan属性必须设置为true才可生效默认为1分钟默认单位是毫秒 -->
<!-- debug是否打印logback程序运行的日志信息。true=打印false=不打印默认为false; -->
<configuration scan="true" scanPeriod="60" debug="false">
</configuration>
```
2022-06-06 17:08:37 +08:00
#### 主要配置
LoggerAppenders 与 Layouts
* Logger 日志记录器 - 日志输出时%logger输出的名称/类路径
* Appender 输出源 - 输出源是日志最终输出的地方,有三种可以使用 控制台(ConsoleAppender),文件(FileAppender),可切分滚动文件(RollingFileAppender)
* Layout(Encoder) 布局 - 日志打印格式 对应标签encoder.pattern
#### 日志级别
`TRACE < DEBUG < INFO < WARN < ERROR`
> logger只允许打印比配置级别更高级的日志
> 如果想要在控制台打印`WARN`级别的日志那么在leve中日志级别需要配置为`WARN`
或`INFO`或`DEBUG`或`TRACE`
#### 参考
[简书-Logback配置使用]('https://www.jianshu.com/p/638b4e2c4068')