java项目log4j2单独为某个类配置日志文件

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

对应的log4j2.xml内容如下图所示:只有一个RollingFile节点,整个系统只会生成一个log日志文件。

java项目log4j2单独为某个类配置日志文件_第1张图片

生成的日志文件如下图:

java项目log4j2单独为某个类配置日志文件_第2张图片

当系统不断扩大,业务越来越复杂,所有接口或者方法的日志内容都放在一个文件中,内容比较乱,不方便查看。

这时候就考虑把日志拆分成多个文件,不同的业务内容放到不同的日志文件中。

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






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

		
		
		
			
			
			
			
				
				
			
			
				
			
			
		

		
		
			
			
			
			
				
				
			
			
				
			
			
		


	
	
		
		
			
			
		

		
		
		
			
		


	



文件内容解读:

java项目log4j2单独为某个类配置日志文件_第3张图片

java项目log4j2单独为某个类配置日志文件_第4张图片

以上配置表达的是,系统整体日志使用一个文件记录,发票接口使用一个文件记录。同时发票接口日志的信息不会记录到整体的日志里面,这是由Logger节点的additivity属性决定的(additivity 属性配置为 false,则这个logger不会将日志流反馈到root中)。

如果有其他接口或者类,仿照InvoiceRollingFile,单独添加对应的RollingFile节点和Logger节点。这两个节点是一 一对应的,只要新加了RollingFile,就需要在下面配上Logger,同时Logger节点的 appender-ref属性中ref的值需要与RollingFile节点的name属性值保持一致。

记录log信息的代码示例:

java项目log4j2单独为某个类配置日志文件_第5张图片

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

private static final Logger logger = LogManager.getLogger("InvoiceLogger");

logger.info("我是info级别的日志信息");

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

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

java项目log4j2单独为某个类配置日志文件_第6张图片

java项目log4j2单独为某个类配置日志文件_第7张图片

java项目log4j2单独为某个类配置日志文件_第8张图片

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

你可能感兴趣的:(JAVA,java,log4j2,日志配置,单独日志,日志分离)