log4j2分层输出日志

在java mvc框架开发过程中,我们经常的将代码分为类似controller(控制层)、service(业务层)、rpc(远程接口调用层)、dao(数据层)等层级,如果将所有层级的日志全部都打到一个文件,一个是导致单个日志文件过大,另外不方便查看,所以下面考虑用log4j2根据不同层级生成对应的log文件:

1. maven配置


			org.slf4j
			slf4j-api
		
		
			org.slf4j
			slf4j-log4j12
		
		
			org.apache.logging.log4j
			log4j-1.2-api
			2.10.0
				    

2. log4j2配置文件



	
		
		%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [LOGID:%X{logId}] [%thread] %C#%M [%L] -| %msg%n
		/export/Logs/Domains/myapp
	

	
		
			
		
		
			
			
				
			
		

		
			
			
				
			
		
		
			
			
				
			
		

	

	
		
		
		
			
		
		
			
		
		
			
		
		
			
			
		
	


3. 输出日志工具类

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogUtil {

	/**
	 * RPC层日志记录
	 */
	public static final Logger RPC = LoggerFactory.getLogger("RPC");

	/**
	 * Service业务层日志记录
	 */
	public static final Logger SERVICE = LoggerFactory.getLogger("SERVICE");

	/**
	 * Controller业务层日志记录
	 */
	public static final Logger CONTROLLER = LoggerFactory.getLogger("CONTROLLER");

}

4. 输出日志

LogUtil.CONTROLLER.error("error message={}", e);
LogUtil.SERVICE.warn("warn message={}", msg);
....

你可能感兴趣的:(java)