52writeHeader();
53LogLog.debug("setFile ended");
54}
DailyRollingFileAppender类
DailyRollingFileAppender继承自FileAppender,不过这个名字感觉有点不靠谱,事实上,DailyRollingFileAppender会在每隔一段时间可以生成一个新的日志文件,不过这个时间间隔是可以设置的,不仅仅只是每隔一天。时间间隔通过setDatePattern()方法设置,datePattern必须遵循SimpleDateFormat中的格式。支持的时间间隔有:
1.每天:’.’YYYY-MM-dd(默认)
2.每星期:’.’YYYY-ww
3.每月:’.’YYYY-MM
4.每隔半天:’.’YYYY-MM-dd-a
5.每小时:’.’YYYY-MM-dd-HH
6.每分钟:’.’YYYY-MM-dd-HH-mm
DailyRollingFileAppender需要设置的两个属性:datePattern和fileName。其中datePattern用于确定时间间隔以及当日志文件过了一个时间间隔后用于重命名之前的日志文件;fileName用于设置日志文件的初始名字。在实现过程中,datePattern用于实例化SimpleDateFormat,记录当前时间以及计算下一个时间间隔时间。在每次写日志操作之前先判断当前时间是否已经操作计算出的下一间隔时间,若是,则将之前的日志文件重命名(向日志文件名尾添加datePattern指定的时间信息),并创新的日志文件,同时重新设置当前时间以及下一次的时间间隔。fileappender log4j
1 public void activateOptions() {
2super.activateOptions();
3if (datePattern != null && fileName != null) {
4now.setTime(System.currentTimeMillis());
5sdf = new SimpleDateFormat(datePattern);
6int type = computeCheckPeriod();
7printPeriodicity(type);
8rc.setType(type);
9File file = new File(fileName);
10scheduledFilename = fileName
11+ sdf.format(new Date(file.lastModified()));
12
13} else {
14LogLog.error("Either File or DatePattern options are not set for appender ["
15+ name + "].");
16}
17 }
18 void rollOver() throws IOException {
19if (datePattern == null) {
20errorHandler.error("Missing DatePattern option in rollOver().");
21return;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29497-23.html
股民二级市场接盘赔钱