說明
在log4j2中串稀,可以通過配置RollingFileAppender
的清理策略來實現自動清理日志,具體可以參照官網中對RollingFileAppender配置文件的介紹:https://logging.apache.org/log4j/2.x/manual/appenders.html#FileAppender。
另外存和,log4j1中的RollingFileAppender雖然無法實現自動清理日志的功能烟逊,但可以通過自己定義Appender來實現,可參照:log4j自動日志刪除(轉)
樣例
可以通過一個簡單的樣例來查看log4j2的自動清理日志功能吏垮,操作步驟如下:
使用Maven新建項目障涯,可以命名為
log4j2_demo
。-
完善pom.xml膳汪,加入對log4j2的依賴及編譯器插件唯蝶。(注:log4j2在2.3及以前版本支持JDK1.6,2.3之后的版本需要JDK1.7)
<properties> <log4j2.version>2.7</log4j2.version> </properties> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
-
在src/main/java目錄下新建類
Demo
遗嗽,用于不斷產生日志粘我,Demo.java內容如下:import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Demo { private static final Logger logger = LogManager.getLogger(); public static void main(String[] args) { while (true) { logger.trace("trace level"); logger.debug("debug level"); logger.info("info level"); logger.warn("warn level"); logger.error("error level"); logger.fatal("fatal level"); } } }
-
在src/main/resource下創(chuàng)建log4j2的配置文件
log4j2.xml
,寫入配置痹换,內容如下:<?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn"> <Properties> <Property name="baseDir">logs</Property> </Properties> <Appenders> <RollingFile name="RollingFile" fileName="${baseDir}/app.log" filePattern="${baseDir}/$${date:dd日hh時}/app-%d{mm分ss秒}.log.gz"> <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" /> <CronTriggeringPolicy schedule="* * * * * ?"/> <DefaultRolloverStrategy> <Delete basePath="${baseDir}" maxDepth="2"> <IfFileName glob="*/app-*.log.gz" /> <IfLastModified age="5s" /> </Delete> </DefaultRolloverStrategy> </RollingFile> </Appenders> <Loggers> <Root level="all"> <AppenderRef ref="RollingFile"/> </Root> </Loggers> </Configuration>
運行Demo類征字,可以看到在項目路徑下的
logs
文件夾中,每秒都會產生一個日志文件晴音,并且每隔秒都會自動刪除上一次修改在5s前的日志柔纵。