如何通过log4j2.xml配置拆分日志文件实现业务日志分类管理

在项目中,一般都是把日志记录到一个日志文件中。

如何通过log4j2.xml配置拆分日志文件实现业务日志分类管理

对应的 log4j2.xml 内容呈现如下:其中仅有一个 RollingFile 节点,整个系统在运行过程中只会产出一个 log 日志文件。

生成的日志文件如下图:

系统不断扩大,业务变得越来越复杂。所有接口或者方法的日志内容都被放在一个文件里,这样导致内容比较混乱,查看起来很不方便。

这时候要考虑将日志进行拆分,拆分成多个文件。不同的业务内容,要分别放到不同的日志文件里。

修改后的log4j2.xml内容如下:




	
		D:/webbase/logs
		${LOG_HOME}/backup
	
	
		
			
		
		
		
		
			
			
			
			
				
				
			
			
				
			
			
		
		
		
			
			
			
			
				
				
			
			
				
			
			
		
	
	
		
		
			
			
		
		
		
		
			
		
	

文件内容解读:

系统整体日志通过一个文件来记录,发票接口则使用另一个文件记录。并且,发票接口日志的信息不会被记录到整体的日志当中,这是因为 Logger 节点的 additivity 属性所决定的,当 additivity 属性配置为 false 时,这个 logger 就不会将日志流反馈到 root 中。

如果存在其他接口或者类,那就仿照 InvoiceRollingFile 这样做。单独增添与之对应的 RollingFile 节点以及 Logger 节点。这两个节点存在一一对应的关系。如果新增了 RollingFile,那么就必须在其下方配备 Logger。并且,Logger 节点的 appender-ref 属性中 ref 的值要与 RollingFile 节点的 name 属性值保持相同。

记录log信息的代码示例:

引入 org.apache.logging.log4j 包中的 LogManager 类。
引入 org.apache.logging.log4j.Logger;将 org.apache.logging.log4j.Logger 进行引入;对 org.apache.logging.log4j.Logger 进行导入;把 org.apache.logging.log4j.Logger 给引入进来;使 org.apache.logging.log4j.Logger 被引入;让 org.apache.logging.log4j.Logger 得以引入。
静态私有常量 logger 由 LogManager 获取,其对应的名称为 "InvoiceLogger"。
logger.info("我是info级别的日志信息");

InvoiceLogger 对应的是在 log4j2.xml 配置文件里的 Logger 节点的 name 属性值。

按照以上方式配置后,生成的日志文件就会是下面这个样子的

要找发票接口相关的日志,就到 Invoice 文件夹中找对应日期的文件。若要查找其他日志内容,就在 Web 文件夹中查找。(Invoice 和 Web 是在 log4j2.xml 配置文件的 fileName 节点进行配置的。)

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

24阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

27阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

23阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读