2025年springaop实现日志管理(springboot aop日志管理)

springaop实现日志管理(springboot aop日志管理)由于日志服务一般都在 ApplicationC 创建前就初始化了 它并不是必须通过 Spring 的配置文件控制 因此通过系统属性和传统的 Spring Boot 外部配置文件依然可以很好的支持日志控制和管理 根据不同的日志系统 你可以按如下规则组织配置文件名 就能被正确加载 Spring

大家好,我是讯享网,很高兴认识大家。



  下面以实际项目中日志为例,从简单到复杂,讲解log4j2日志框架配置文件的使用。

2.1 简单版日志配置,输出控制台

  配置文件如下:

spring boot 日志 配置 每天_xml
讯享网

spring boot 日志 配置 每天_配置文件_02

spring boot 日志 配置 每天_xml_03

2.2 简单版日志配置,控制台、文件双输出

  配置文件如下

spring boot 日志 配置 每天_springboot_04

spring boot 日志 配置 每天_log4j2_05

spring boot 日志 配置 每天_xml_06

spring boot 日志 配置 每天_配置文件_07

2.3 日志的级别“透传”——additivity属性

注意一个问题:对比配置文件修改前后的控制台的输出可以看到,配置修改前控制台的输出日志级别为error,意味着只有erro级别以上的日志才会打印,事实也确实是如此,如配置:

spring boot 日志 配置 每天_springboot_08

  有了logger之后,日志级别是由logger的级别控制?

spring boot 日志 配置 每天_springboot_09

  如上,发现一个问题:日志文件中这个时候确实打印的是warn以上级别的日志,控制台也确实是info级别以上的日志,但是,日志文件只打印与业务相关的日志,控制台这个时候打印的是与业务无关的系统和数据库操作日志,这是为什么?

  Logger的appender根据参数additivity决定是否要叠加root的appender,logger的级别是其自身定义的级别,和root的级别没什么关系。判断一个类的日志输出情况,首先找到这个类所在的logger(没有特别定义则默认为root),然后根据以上规则判断出这个logger的appender和level。然后既可以知道这个类的哪些日志会被输出到哪些地方了。注意:任何一个类只会和一个logger对应,要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的appender和level。 因此对于上述现象的解释是:业务相关的类都在包com.onlyisssilence.muya下,它们的日志输出到了文件中,而数据库以及其他的框架类日志使用的是默认的logger——root,而root的appender为控制台,所以均会打印到控制台上。

spring boot 日志 配置 每天_log4j2_10

spring boot 日志 配置 每天_springboot_11

2.4 Logger配置中root和logger的区别

spring boot 日志 配置 每天_springboot_12

spring boot 日志 配置 每天_log4j2_13

spring boot 日志 配置 每天_springboot_14

spring boot 日志 配置 每天_配置文件_15

spring boot 日志 配置 每天_配置文件_16

spring boot 日志 配置 每天_log4j2_17

spring boot 日志 配置 每天_log4j2_18

  logger存在父子级别的概念,其中root是根级别的,当待打印的文件没有设置任何所属的logger时,会默认使用root级别的,如上例中的sql的日志、系统日志(它们均没有设置其logger),对于这种层级的包中的类,如果重复设置了其logger那么以离该文件最近的节点设置的logger为主。

2.5 Log4j2中特殊appender之JAP

  项目中有的时候需要存储一些操作日志,比如用户登录登出,查询信息,删除信息等,这些操作对于前端可能就是一个接口的调用,对于后端而言就是controller层中的一个方法的调用,这种业务场景的需求可以考虑使用log4j2+切面技术的相结合来实现,总的思路是,每个接口添加日志操作的自定义注解;注解的处理类中调用log4j2的日志工具打印日志;打印的日志使用JAP这种属性的appender,这种appender再通过定义日志操作类实现自动的入库。

小讯
上一篇 2025-04-30 16:15
下一篇 2025-05-12 23:07

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188291.html