Java项目引入日志生成器及其日志分级
项目情况
maven管理依赖的spring(spring-cloud-alibaba)项目,使用idea编译,jdk版本1.8。
为项目引入日志生成器,为方便依赖管理,决定采用Lombok自带的Slf4j,加上logstash-logback-encoder,实现日志分级输出到文件和控制台。
依赖引入
项目pom文件里添加以下依赖,然后重新加载依赖。
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
bootstrap.yml文件添加内容
bootstrap.yml是spring cloud的配置文件,可以存在多个,在指定的bootstrap.yml文件里,添加日志相关配置。
logging:
file:
path: logs #content root目录下的logs文件夹存放日志,不存在则创建
level: #设置指定包下的日志级别
com:
alibaba:
nacos:
client:
config:
impl: warn
example: debug
org:
apache:
ibatis:
logging:
jdbc: debug
pattern: # 日志输出格式
console:%d{
yyyy-MM-dd} [%thread] %-5level %logger{
50} - %msg%n
添加日志生成器配置文件
在resources文件夹下新增两个文件logback-json.xml、logback-spring.xml。
logback-json.xml
<included>
<property name="JSON_LOG_FILE" value="${LOG_PATH}/${LOG_NAME}.json"/>
<property name="JSON_ROLLING_FILE_NAME_PATTERN" value="${JSON_LOG_FILE}.%d{yyyy-MM-dd}.%i" />
<appender name="JSON_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${JSON_LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<cleanHistoryOnStart>${LOG_FILE_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
<fileNamePattern>${JSON_ROLLING_FILE_NAME_PATTERN:-${JSON_LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern