集成框架 -- 日志配置

本文介绍如何在SpringBoot项目中使用Lombok的@Slf4j注解替代System.out.println进行日志打印,包括配置log4j,调整依赖,以及如何在代码中使用。讨论了不同日志级别的应用,以及如何配置log4j以实现更精细的日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这个日志打印替代 System.out.println就么有什么好说的,最多说一下配置方面。

通常,我们写代码的过程中,免不了要输出各种调试信息。在没有使用任何日志工具之前,都会使用 System.out.println 来做到。 这么做直观有效,但是有一系列的缺点:

  1. 不知道这句话是在哪个类,哪个线程里出来的
  2. 不知道什么时候前后两句输出间隔了多少时间
  3. 无法关闭调试信息,一旦System.out.println多了之后,到处都是输出,增加定位自己需要信息的难度
    等等

简述

Log4J的配置文件就是用来设置日志级别、布局,日志存放位置,它可接key=value格式的设置或xml格式的设置信息。通过配置,创建出Log4J的运行环境。

日志分为不同的级别,我比较常用的就是:debug,info,error

在创建Spring Boot工程时,我们自动引入了spring-boot-starter, 没有启动器启动不了。其中包含了spring-boot-starter-logging,该依赖内容就是Spring Boot默认的日志框架Logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖。

需要注意的是
Spring Boot 只有1.3.x和1.3.x以下版本才支持log4j的日志配置,1.3.x以上版本只支持log4j2

修改依赖

 // 排除lombok 依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.21</version>
</dependency>
<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.21</version>
</dependency>

配置


#定义输出级别和输出平台,控件台输出 appender(目的地)可以有多个
log4j.rootLogger=debug, stdout,FILE,errorLog
#设定stdout输出平台 org.apache.log4j.ConsoleAppender(控制台)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#指定输出的最低级别
log4j.appender.stdout.Threshold=debug
# 指定默认值是true,意谓着所有的消息都会被立即输出。 fasle 不输出
log4j.appender.stdout.ImmediateFlush=true
#默认情况下是System.out,指定输出控制台-err为红色的提示
log4j.appender.stdout.Target=system.err
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#指定输入的格式对输出的内容进行格式化
#%p  输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%d 输出日志时间点的日期或时间,
#%l 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数
#%m 输出代码中指定的消息,产生的日志具体信息 
#%n 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行
log4j.appender.stdout.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}][%l]%m%n
##配置输出到文件-每天一个文件
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
#指定输出的最低级别
log4j.appender.FILE.Threshold=debug
# 指定默认值是true,意谓着所有的消息都会被立即输出。 fasle 不输出
log4j.appender.FILE.ImmediateFlush=true
#默认情况下是System.out,指定输出控制台-err为红色的提示
log4j.appender.FILE.File= logs/logs.log
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
#指定输入的格式对输出的内容进行格式化
#%p  输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%d 输出日志时间点的日期或时间,
#%l 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数
#%m 输出代码中指定的消息,产生的日志具体信息 
#%n 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行
log4j.appender.FILE.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}][%l]%m%n
## 输入文件指定大小与上面每天一个文件2选一errorLog/FILE
log4j.appender.errorLog=org.apache.log4j.RollingFileAppender
#指定输出的最低级别-保存日志取tomcat下logs目录
log4j.appender.errorLog.Threshold=debug
# 指定默认值是true,意谓着所有的消息都会被立即输出。 fasle 不输出
log4j.appender.errorLog.ImmediateFlush=true
#默认情况下是System.out,指定输出控制台-err为红色的提示
log4j.appender.errorLog.File= ${catalina.base}/logs.log
#指定文件的大小
log4j.appender.errorLog.MaxFileSize= 20480KB
# 指定最大文件个数
log4j.appender.errorLog.MaxBackupIndex= 10
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
log4j.appender.errorLog.layout=org.apache.log4j.PatternLayout  
#指定输入的格式对输出的内容进行格式化
#%p  输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%d 输出日志时间点的日期或时间,
#%l 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数
#%m 输出代码中指定的消息,产生的日志具体信息 
#%n 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行
log4j.appender.errorLog.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}][%l]%m%n

使用

在这里插入图片描述
相当于

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(xxxxx.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值