突发的log4j漏洞,导致了程序员加班加点的进行log4j版本的升级,logback它不香吗?
今天就把log4j服务升级为logback服务,以springboot项目为例,我们可以执行以下步骤:
一,剔除原有的log4j
1,在pom.xml中删除log4j的引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2,删除resources的log4j文件
删除名为的文件
二,添加新的logback
1,在pom.xml中删除logback的引用
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
2.添加resources下的logback文件
新增名为的文件
3.logback.xml的文件内容
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss,SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 文件输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/server.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss,SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/server.log.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>200MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
三,闲聊logback
1,logback的内容
- logback是一款开源日志组件,其的官网为:http://logback.qos.ch
- 包含logback-core,logback-classic,logback-access三个重要的模块
2,logback的优势
- 性能高,内存小
- 充分的官方文档
- 自动装载配置文件
- 自动压缩或删除日志文件
3,logback的默认配置
- 会找 logback-test.xml 和 logback.xml 文件,如果存在则执行相应配置
- 如果找不到配置文件,默认会调用BasicConfigurator创建最小化配置