个人项目下超实用的一个简单log4j2日志配置

支持按照年月日及不同级别日志生成目录及文件

1、强烈建议根据官网学习

搜索官网的链接把https://logging.apache.org/log4j/2.x/
(偷懒的话,直接拷贝我的配置把~)

2、使用slf4jAPI,log4j2实现

引入依赖

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>${log4j.version}</version>
		</dependency>

3、配置

直接上配置

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" strict="false" name="sawFetchLog">
	<Properties>

		<!--定义基本日志参数-->
		<Property name="year">$${date:yyyy}</Property>
		<Property name="month">$${date:MM}</Property>
		<Property name="day">$${date:dd}</Property>
		<Property name="smoothPattern">$${date:yyyyMMdd}</Property>
		<Property name="everyPattern">$${date:yyyy-MM-dd}</Property>

		<Property name="DailylogDir">log/${year}/${month}/${day}</Property>

		<Property name="sawDebug">${DailylogDir}/fetchDebug</Property>
		<Property name="sawInfo">${DailylogDir}/fetchInfo</Property>
		<Property name="sawWarn">${DailylogDir}/fetchWarn</Property>
		<Property name="sawError">${DailylogDir}/fetchError</Property>

		<!--
			DEFAULT=yyyy-MM-dd HH:mm:ss.SSS
			%l 等价 %C.%M(%F:%L)
		-->
		<Property name="logPatternDefault">%d{DEFAULT} [%t] %-5level %l - %m%n</Property>
		<Property name="logPattern">%d{HH:mm:ss.SSS} [%t] %-5level %logger{36}.(%M:%L) - %m%n</Property>

		<Property name="intervalValue">4</Property>
		<Property name="fileSize">10MB</Property>
		<Property name="MaxCount">20</Property>
		<Property name="fileEncoding">utf-8</Property>
	</Properties>

	<Appenders>
		<!--
			ConsoleAppender                     -   控制台打印,默认 target=SYSTEM_OUT
			FileAppender                        -   输出至单个文件,采用OutputStream
			RandomAccessFileAppender            -   输出值文件,采用 RandomAccessFile 在Buffer下相比较FileAppender效率高
			RollingFileAppender                 -   滚动输出
			RollingRandomAccessFileAppender     -   滚动输出,采用 RandomAccessFile
		-->
		<Console name="console">
			<PatternLayout pattern="${logPatternDefault}"/>
		</Console>
		<!--debug-->
		<RollingRandomAccessFile name="sawRollingFileDebug" fileName="${sawDebug}.log"
		                         filePattern="${DailylogDir}/${sawDebug}-%d{yyyy-MM-dd}-%i.log"> <!--.log.gz则压缩-->
			<PatternLayout pattern="${logPatternDefault}" charset="${fileEncoding}"/>
			<Policies>
				<TimeBasedTriggeringPolicy interval="${intervalValue}" modulate="true"/> <!--每4个小时翻滚,modulate从4小时开始-->
				<SizeBasedTriggeringPolicy size="${fileSize}"/><!--到达10MB翻滚文件-->
			</Policies>
			<DefaultRolloverStrategy max="${MaxCount}"/><!--最大翻滚次数,到达上限即从1开始覆盖-->

			<!--只输出debug 从高到低-->
			<Filters>
				<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
				<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
				<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
				<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
			</Filters>
		</RollingRandomAccessFile>
		<!--info-->
		<RollingRandomAccessFile name="sawRollingFileInfo" fileName="${sawInfo}.log"
		                         filePattern="${DailylogDir}/${sawInfo}-%d{yyyy-MM-dd}-%i.log"> <!--.log.gz则压缩-->
			<PatternLayout pattern="${logPatternDefault}" charset="${fileEncoding}"/>
			<Policies>
				<TimeBasedTriggeringPolicy interval="${intervalValue}" modulate="true"/> <!--每4个小时翻滚,modulate从4小时开始-->
				<SizeBasedTriggeringPolicy size="${fileSize}"/><!--到达指定大小翻滚文件-->
			</Policies>
			<DefaultRolloverStrategy max="${MaxCount}"/><!--最大翻滚次数,到达上限即从1开始覆盖-->

			<!--只输出info 从高到低-->
			<Filters>
				<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
				<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
				<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
			</Filters>
		</RollingRandomAccessFile>

		<!--warn-->
		<RollingRandomAccessFile name="sawRollingFileWarn" fileName="${sawWarn}.log"
		                         filePattern="${DailylogDir}/${sawWarn}-%d{yyyy-MM-dd}-%i.log"> <!--.log.gz则压缩-->
			<PatternLayout pattern="${logPatternDefault}" charset="${fileEncoding}"/>
			<Policies>
				<TimeBasedTriggeringPolicy interval="${intervalValue}" modulate="true"/> <!--每4个小时翻滚,modulate从4小时开始-->
				<SizeBasedTriggeringPolicy size="${fileSize}"/><!--到达指定大小翻滚文件-->
			</Policies>
			<DefaultRolloverStrategy max="${MaxCount}"/><!--最大翻滚次数,到达上限即从1开始覆盖-->

			<!--只输出warn 从高到低-->
			<Filters>
				<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
				<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
			</Filters>
		</RollingRandomAccessFile>

		<!--error-->
		<RollingRandomAccessFile name="sawRollingFileError" fileName="${sawError}.log"
		                         filePattern="${DailylogDir}/${sawError}-%d{yyyy-MM-dd}-%i.log"> <!--.log.gz则压缩-->
			<PatternLayout pattern="${logPatternDefault}" charset="${fileEncoding}"/>
			<Policies>
				<TimeBasedTriggeringPolicy interval="${intervalValue}" modulate="true"/> <!--每4个小时翻滚,modulate从4小时开始-->
				<SizeBasedTriggeringPolicy size="${fileSize}"/><!--到达指定大小翻滚文件-->
			</Policies>
			<DefaultRolloverStrategy max="${MaxCount}"/><!--最大翻滚次数,到达上限即从1开始覆盖-->

			<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
		</RollingRandomAccessFile>
	</Appenders>

	<Loggers>
		<!--name可以指定包路径,某一类的class是某一个级别的日志-->
		<!--		<logger name="" level=""/>-->
		<Root level="debug">
			<AppenderRef ref="sawRollingFileDebug" additivity="false"/>
			<AppenderRef ref="sawRollingFileInfo" additivity="false"/>
			<AppenderRef ref="sawRollingFileWarn" additivity="false"/>
			<AppenderRef ref="sawRollingFileError" additivity="false"/>
			<AppenderRef ref="console" additivity="false"/>
		</Root>
	</Loggers>

</Configuration>

4、本地截图

简单易用
在这里插入图片描述

参考链接:
链接:
[1]https://logging.apache.org/log4j/2.x/manual/configuration.html
[2]https://www.cnblogs.com/wuqinglong/p/9516529.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值