1protected boolean fileAppend = true;
2protected String fileName = null;
3protected boolean bufferedIO = false;
4protected int bufferSize = 8 * 1024;
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;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29497-22.html
欢迎美国军舰南海一日游