創(chuàng)建項(xiàng)目
項(xiàng)目名稱:012-log4j2-demo
日志需要:每天生成日志文件,但是日志文件是有大小限制,當(dāng)生成的日志文件超過指定的日志文件的大小,就會(huì)生成新的日志文件,那么之前的日志要進(jìn)行封裝或壓縮。
編寫日志控制文件
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="OFF">
<!--定義一個(gè)屬性-->
<properties>
<property name="LOG_HOME">c:/logger</property>
</properties>
<Appenders>
<!--定義輸出到控制臺(tái)的日志-->
<Console name="console" target="SYSTEM_OUT">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[log4j2-demo] %-d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %c:%L - %m%n"/>
</Console>
<!--
日志需求:每天生成日志文件,當(dāng)日志文件超過指定大小,那么生成新的日志文件,之前的日志文件需要進(jìn)行壓縮
-->
<RollingRandomAccessFile name="file" fileName="${LOG_HOME}/rollFile.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/rollFile-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[log4j2-demo] %-d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %c:%L - %m%n"/>
<!--
當(dāng)日志附加器使用策略>1時(shí),需要使用如下標(biāo)簽<Policies>
-->
<Policies>
<!--
interval:int類型,指兩次封存動(dòng)作之間的時(shí)間間隔
單位:以日志的命名的精度來(lái)確定單位,是filePattern屬性的時(shí)間精度
modulate:boolean類型,說明是否對(duì)封存時(shí)間進(jìn)行調(diào)制
時(shí)間精度以時(shí)來(lái)說,如果Modulate值為true,則封存時(shí)間將以0點(diǎn)為邊界進(jìn)行偏移計(jì)算。比如:interval=4hour,那么
假設(shè)上次封存日期時(shí)間為3:00,則下次封存時(shí)間為4:00,而不是7點(diǎn)
-->
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="2kb"/>
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="console"/>
<AppenderRef ref="file"/>
</Root>
</Loggers>
</Configuration>
編寫測(cè)試類
??????