5
6public void activateOptions() {
7if (fileName != null) {
8try {
9setFile(fileName, fileAppend, bufferedIO, bufferSize);
10} catch (java.io.IOException e) {
11errorHandler.error("setFile(" + fileName + "," + fileAppend
12+ ") call failed.", e, ErrorCode.FILE_OPEN_FAILURE);
13}
14} else {
15LogLog.warn("File option not set for appender [" + name + "].");
16LogLog.warn("Are you using FileAppender instead of ConsoleAppender?");
17}
18}
19
20public synchronized void setFile(String fileName, boolean append,
21boolean bufferedIO, int bufferSize) throws IOException {
22LogLog.debug("setFile called: " + fileName + ", " + append);
23if (bufferedIO) {
24setImmediateFlush(false);
25}
26reset();
27FileOutputStream ostream = null;
28try {
29ostream = new FileOutputStream(fileName, append);
30} catch (FileNotFoundException ex) {
31String parentName = new File(fileName).getParent();
32if (parentName != null) {
33File parentDir = new File(parentName);
34if (!parentDir.exists() && parentDir.mkdirs()) {
35ostream = new FileOutputStream(fileName, append);
36} else {
37throw ex;
38}
39} else {
40throw ex;
41}
42}
43Writer fw = createWriter(ostream);
44if (bufferedIO) {
45fw = new BufferedWriter(fw, bufferSize);
46}
47this.setQWForFiles(fw);
48this.fileName = fileName;
49this.fileAppend = append;
50this.bufferedIO = bufferedIO;
51this.bufferSize = bufferSize;
52writeHeader();
53LogLog.debug("setFile ended");
54}
DailyRollingFileAppender类
DailyRollingFileAppender继承自FileAppender,不过这个名字感觉有点不靠谱,事实上,DailyRollingFileAppender会在每隔一段时间可以生成一个新的日志文件,不过这个时间间隔是可以设置的,不仅仅只是每隔一天。时间间隔通过setDatePattern()方法设置,datePattern必须遵循SimpleDateFormat中的格式。支持的时间间隔有:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29497-2.html
粉丝的热情褪去了
早