因为现场的定时调度框架是前辈写的,前辈已高就,现场使用因为涉及到一天几亿数据需要提取出来,转换为其他表数据,所以日志量特别大,1天10个G,长此以往肯定不行的,找了很多网上的教程都不行,最后发现,这样就可以删除3天的日志,目的达到,备忘分享
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level - %msg%n" />
</Console>
<RollingFile name="file" fileName="${sys:logPath}${sys:logFileName}.log"
filePattern="${sys:logPath}${sys:logFileName}-%d{yyyy-MM-dd-HH-mm}.log"
append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level - %msg%n" />
<Policies>
<!-- <TimeBasedTriggeringPolicy interval="5" /> -->
<SizeBasedTriggeringPolicy size="100 MB" />
</Policies>
<DefaultRolloverStrategy max="20">
<Delete basePath="${sys:logPath}" maxDepth="1">
<IfFileName glob="*.log"/>
<IfLastModified age="4320m" />
<!--!Note: 这里的age必须和filePattern协调,
后者是精确到HH, 这里就要写成xH, xd就不起作用,精确到mm 下面就要成分单位 4320是3天的 ,时间需要保证文件不被占用否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
<!--3天-->
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<logger name="com.sf.smartjob" level="DEBUG">
</logger>
<Root level="DEBUG">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Root>
</Loggers>
</Configuration>
现场日志格式
因为现场的定时调度框架是前辈写的,前辈已高就,现场使用因为涉及到一天几亿数据需要提取出来,转换为其他表数据,所以日志量特别大,1天10个G,长此以往肯定不行的,找了很多网上的教程都不行,最后发现,这样就可以删除3天的日志,目的达到,备忘分享<?xml version="1.0" encoding="UTF-8"?><Configuration status="DEBUG"> <Appenders> <Console name="console" tar
import
java
.io.IOException;
import
java
.io.InterruptedIOException;
import
java
.text.ParseException;
import
java
.text.SimpleDateFormat;
import
java
.util.Date;
import
java
.util.HashMap;
import
java
.util.Ma
日志
文件大小1MB,每天最多
保留
10个文件,只
保留
7天的
日志
rollingRandomAccessFile: #
日志
文件Appender,将
日志
信息输出到
日志
文件
- name: ROLLING_FILE
fileName: ${logPath}/${projectName}.log
filePattern: "${logPath}/historyLogs/$${date:yyyy-MM}/${projectName}-%d{yyyy-MM-dd}-%i.log.gz"
每天生成一个
log4j
日志
文件,如果只需要将最近一段时间内的
日志
文件
保留
,以前或更早的文件不用
保留
。例如只
保留
最近一周的
日志
,
日志
文件
保留
3天等等这些。。。通过这个jar包就可以实现。
log4j
.properties文件在包中,拷贝出来用就可以了
当
log4j
使用DailyRollingFileAppender进行
日志
归档时,需要对
日志
的个数进行控制。
此时需要对DailyRollingFileAppender进行重写。
package org.apache.
log4j
;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import
java
.io.File;
import
java
.io.FileFilter;
import
java
.io.IOException;
最近做项目的时候,遇到了
日志
的输出问题。我们想按小时输出
日志
,同时最多
保存
7天的
日志
。
log4j
本身自带的appender如下:
org.apache.
log4j
.ConsoleAppender 输出到控制台
org.apache.
log4j
.FileAppender 输出到文件
org.apache.
log4j
.DailyRollingFileAppender
org.apache.l...
log4j
.appender.A2=org.apache.
log4j
.RollingFileAppender
#定义A2输出到哪个文件
log4j
.appender.A2.File=./log/test.log
#
保留
最近15天的
日志
log4j
.appender.A2.MaxBackupIndex = 15
#最近15天的
日志
最大限制为3MB
log4j
.ap