Erlo

SpringBoot-日志

2025-08-26 12:29:30 发布   57 浏览  
页面报错/反馈
收藏 点赞

1. java日志框架发展史

1. 1起源

在jdk1.3时期想要追踪异常大多只能使用System.out.println("error")的方式,这会导致代码中出现大量的打印而且无法记录在文本中。于是

  1. 将错误信息写入txt并保存,这样就可以顺利追踪到异常了
  2. 但随着用户请求量越来越大单个文本达到1-2个G文件将很难打开,于是将日志信息按天迭送例如:xxxx年xx月xx日.log或者按物理大小迭代例如:xxxx年xx月xx日_20M.log
  3. 为能及时追踪异常信息,用户出现异常信息时能不能发送邮件或者短信提醒
  4. 按等级区分日志例如:追踪 信息 调试 异常
  5. 异步执行防止阻塞
  6. 自定义日志格式

这便是日志框架的整体设计思路例如:log4j(开源)、jul(官方)

1. 2日志实现

日志实现 日志门面 实现方式
log4j(性能差,淘汰) JCL 使用类加载器主动寻找有没有日志实现,缺点:当使用自定义类加载器时可能会导致内存溢出。
jul(性能一般,使用方便) SJF4J 使用桥接器将日志实现和日志门面关联,性能更好。适配器将其他日志转换成指定的日志类型,例如将jul或jcl等转换成slf4j。SJF4J官方针对每个日志都提供了对应的适配器,也针对日志实现提供了对应的桥接器。
log4j2(推荐)
logback(推荐,与SJF4J同一作者)

门面不实现日志功能,只是整合日志框架。

  1. 使用jul+jcl记录日志


    commons-logging
    commons-logging
    1.2

多个日志框架同时存在时,为实现日志统一,将jcl转化到slf4j



    org.slf4j
    jcl-over-slf4j
    1.7.30

import org.apache.commons.logging.LogFactory;

Log logger = LogFactory.getLog(jul.class);
logger.info("n一行信息");//对应不同日志级别
  1. 使用og4j+slf4j记录日志
    在使用log4j前需要在resources目录下新增log4j.properties配置文件文件
#ALL


    log4j
    log4j
    1.2.12



    org.slf4j
    slf4j-api
    1.7.36



    org.slf4j
    slf4j-log4j12
    1.7.30

import org.slf4j.LoggerFactory;

 Logger logger = LoggerFactory.getLogger(log4j.class);
 logger.info("nn一行信息");//对应不同日志级别

2. logback日志的集成

SpringBoot已经默认集成了slf4j+logback来实现日志,同时也把其他日志替换成了slf4j
spring官网有详细说明

2.1. 日志级别

logging.level.org.example.springbootcode_logging=trace //修改日志文件等级

import org.slf4j.LoggerFactory;


static Logger logger = LoggerFactory.getLogger(SpringBootCodeLoggingApplication.class);
logger.trace("追踪");
logger.debug("调试");
logger.info("信息");
logger.warn("警告");
logger.error("异常");

2.2. 日志格式


logging.pattern.console=%clr(%d{${LOG DATEFORMAT PATTERN:-yyyy-MM-ddHH:mm:ss.sss}}){faint}%c1r(${LOG LEVEL PATTERN:-%5p})%clr(${PID:-}){magenta} %clr(---){faint}%clr([%15.15t]){faint}%c1r(%-40.40logger{39}){cyan} %clr(:){faint}%m%n${LOG_EXCEPTION CONVERSION WORD:-%wEx}

2.3. 日志文件输出


logging.file.path=D:/Project/JavaProject/SpringBootCode_logging/Log

logging.file.name=test.log

2.4. 日志归档


logging.logback.rollingpolicy.max-file-size=5kb

2.5. 自定义配置文件

Sping只提供了基础的配置选项,想要实现更多更深层的功能就必须要自定义配置,具体怎么做呢

  • 在src/main/resources下创建logback-spring.xml文件,注意:文件名不能使用spring.xml,因为spring会在springboot之前读取spring.xml文件会导致logback-spring.xml不生效
  • 会使全局配置文件中设置失效

2.6. 日志其他框架切换

  • 将logback切换成log4j2


    org.springframework.boot
    spring-boot-starter-log4j2

由于logback默认使用logback-classic桥接器,所以要排除掉默认的场景启动器,否则项目会报错



    
        spring-boot-starter-logging
        org.springframework.boot
    

添加log4j2配置文件

  • 将logback切换成log4j


	org.slf4j
	slf4j-log4j12



	
	logback-classic
	ch.qos.logback
	

添加log4j配置文件

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认