forked from JustinSDK/JavaSE6Tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSimpleThreadLogger.java
More file actions
37 lines (30 loc) · 1.05 KB
/
SimpleThreadLogger.java
File metadata and controls
37 lines (30 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package onlyfun.caterpillar;
import java.io.*;
import java.util.logging.*;
public class SimpleThreadLogger {
private static final
java.lang.ThreadLocal<Logger> threadLocal =
new java.lang.ThreadLocal<Logger>();
public static void log(String msg) {
getThreadLogger().log(Level.INFO, msg);
}
private static Logger getThreadLogger() {
Logger logger = threadLocal.get();
if(logger == null) {
try {
logger = Logger.getLogger(
Thread.currentThread().getName());
// Logger 預設是在主控台輸出
// 我們加入一個檔案輸出的Handler
// 它會輸出XML的記錄文件
logger.addHandler(
new FileHandler(
Thread.currentThread().getName()
+ ".log"));
}
catch(IOException e) {}
threadLocal.set(logger);
}
return logger;
}
}