spring boot接入log4j2日志

1:

<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.6.2</version>
        </dependency>

2:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
	status : 这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出
    monitorInterval : Log4j能够自动检测修改配置文件和重新配置本身, 设置间隔秒数。
 -->
<Configuration status="WARN" monitorInterval="60000">
	<!-- 配置日志文件输出目录 -->
	<Properties>
		<property name="LOG_HOME">F:/projects/logs/nano_wallet_server</property>
		<property name="DEFAULT_LOGGER_FILE">default</property>
		<property name="EXCEPTION_LOGGER_FILE">exception</property>
		<property name="ERROR_LOGGER_FILE">error</property>
		<property name="INFO_LOGGER_FILE">info</property>
		<property name="WARN_LOGGER_FILE">warn</property>
	</Properties>
	
	<!-- 日志输出配置 -->
	<Appenders>
		<!-- 输出控制台的配置 -->
		<Console name="console" target="SYSTEM_OUT">
			<!-- 控制台只输出level以及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
			<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
			<!-- 输出日志的格式 -->
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n"/>
		</Console>
		<!-- 文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个适合零食测试用 -->
		<File name="test_logger_appender" fileName="${LOG_HOME}/test.log" append="false">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n"/>
		</File>
		<!-- 设置默认日志格式并配置日志压缩格式() -->
		<RollingFile name="default_logger_appender" immediateFlush="true" fileName="${LOG_HOME}/today/${DEFAULT_LOGGER_FILE}.log" 
			filePattern="${LOG_HOME}/%d{yyyy-MM-dd}/${DEFAULT_LOGGER_FILE}_%i.log.gz">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n" />
			<Policies>
				<!-- 设置每天打包日志一次 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
				<!-- 设置日志文件满1MB后打包 -->
				<SizeBasedTriggeringPolicy size="1MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="max" max="10"/>
		</RollingFile>
		<!-- 设置异常日志格式并配置日志压缩格式() -->
		<RollingFile name="exception_logger_appender" immediateFlush="true" fileName="${LOG_HOME}/today/${EXCEPTION_LOGGER_FILE}.log" 
			filePattern="${LOG_HOME}/%d{yyyy-MM-dd}/${EXCEPTION_LOGGER_FILE}_%i.log.gz">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n" />
			<Policies>
				<!-- 设置每天打包日志一次 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
				<!-- 设置日志文件满1MB后打包 -->
				<SizeBasedTriggeringPolicy size="1MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="max" max="10"/>
		</RollingFile>
		<!-- 设置错误日志格式并配置日志压缩格式() -->
		<RollingFile name="error_logger_appender" immediateFlush="true" fileName="${LOG_HOME}/today/${ERROR_LOGGER_FILE}.log" 
			filePattern="${LOG_HOME}/${ERROT_LOGGER_FILE}_%i.log.gz">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n" />
			<Policies>
				<!-- 设置日志文件满1MB后打包 -->
				<SizeBasedTriggeringPolicy size="1MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="max" max="5"/>
		</RollingFile>
		<!-- 设置一般日志格式并配置日志压缩格式() -->
		<RollingFile name="info_logger_appender" immediateFlush="true" fileName="${LOG_HOME}/today/${INFO_LOGGER_FILE}.log"
			filePattern="${LOG_HOME}/%d{yyyy-MM-dd}/${INFO_LOGGER_FILE}_%i.log.gz">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n" />
			<Policies>
				<!-- 设置每天打包日志一次 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
				<!-- 设置日志文件满1MB后打包 -->
				<SizeBasedTriggeringPolicy size="1MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="max" max="10"/>
		</RollingFile>
		<!-- 设置警告日志格式并配置日志压缩格式() -->
		<RollingFile name="warn_logger_appender" immediateFlush="true" fileName="${LOG_HOME}/today/${WARN_LOGGER_FILE}.log" 
			filePattern="${LOG_HOME}/%d{yyyy-MM-dd}/${WARN_LOGGER_FILE}_%i.log.gz">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M-%L - %msg%xEx%n" />
			<Policies>
				<!-- 设置每天打包日志一次 -->
				<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
				<!-- 设置日志文件满1MB后打包 -->
				<SizeBasedTriggeringPolicy size="1MB"/>
			</Policies>
			<DefaultRolloverStrategy fileIndex="max" max="10"/>
		</RollingFile>
	</Appenders>
	<!-- 日志配置 -->
	<Loggers>
		<!-- 配置日志的根节点 -->
		<root level="trace">
			<appender-ref ref="console" />
		</root>
		<!-- 配置默认的日志 -->
		<logger name="default_logger" level="trace" includeLocation="true" additivity="true">
			<appender-ref ref="default_logger_appender" />
		</logger>
		<!-- 配置异常日志 -->
		<logger name="exception_logger" level="trace" includeLocation="true" additivity="true">
			<appender-ref ref="exception_logger_appender" />
		</logger>
		<!-- 配置错误日志 -->
		<logger name="error_logger" level="trace" includeLocation="true" additivity="true">
			<appender-ref ref="error_logger_appender" />
		</logger>
		<!-- 配置一般日志 -->
		<logger name="info_logger" level="trace" includeLocation="true" additivity="true">
			<appender-ref ref="info_logger_appender" />
		</logger>
		<!-- 配置警告日志 -->
		<logger name="warn_logger" level="trace" includeLocation="true" additivity="true">
			<appender-ref ref="warn_logger_appender" />
		</logger>
		<!-- 配置测试文件 -->
		<logger name="test_logger" level="trace" includeLocation="true" additivity="true">
			<appender-ref ref="test_logger_appender" />
		</logger>
	</Loggers>
</Configuration>

 

3:


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


/**
 * @author zhaowei 2018.08.09
 */
public final class LogUtils
{
	private LogUtils() {

	}
	
	/**
	 * 默认日志文件输出位置
	 */
	private static final Logger DEFAULT_LOGGER = LogManager.getLogger("default_logger");
	
	/**
	 * 异常日志文件输出位置
	 */
	private static final Logger EXCEPTION_LOGGER = LogManager.getLogger("exception_logger");
	
	/**
	 * 错误日志文件输出位置
	 */
	private static final Logger ERROR_LOGGER = LogManager.getLogger("error_logger");
	
	/**
	 * 一般日志文件输出位置
	 */
	private static final Logger INFO_LOGGER = LogManager.getLogger("info_logger");
	
	/**
	 * 测试日志文件输出位置
	 */
	private static final Logger TEST_LOGGER = LogManager.getLogger("test_logger");
	
	/**
	 * 警告日志文件输出位置
	 */
	private static final Logger WARN_LOGGER = LogManager.getLogger("warn_logger");
	
	public static Logger getDefault()
	{
		return DEFAULT_LOGGER;
	}
	
	public static Logger getException()
	{
		return EXCEPTION_LOGGER;
	}
	
	public static Logger getError()
	{
		return ERROR_LOGGER;
	}
	
	public static Logger getInfo()
	{
		return INFO_LOGGER;
	}
	
	public static Logger getTest()
	{
		return TEST_LOGGER;
	}
	
	public static Logger getWarn()
	{
		return WARN_LOGGER;
	}
	
	/**
	 * 自定义文件输出位置
	 * @param loggerFile
	 * @return
	 */
	public static Logger getLogger(String loggerFile)
	{
		return LogManager.getLogger(loggerFile);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值