- 設定 commons logging 使用 java.util.logging
在應用程式的 classpath 中加入 commons-logging.properties 檔案
commons-logging.properties 內容如下,作用是要 commons.logging 使用 Jdk14Logger
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
若不使用 commons-logging.properties, commons logging 會先搜尋 classpath 中是否存在 log4J , 若存在 log4J 則優先使用 log4J, 若不存 log4J 才會使用 java.util.logging, 順序可參考 org.apache.commons.logging.LogSource
- 建立 java.util.logging 設定檔
建立設定檔 logging.properties, 檔名可自訂
handlers= java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = test_%g.log
java.util.logging.FileHandler.encoding = UTF-8
java.util.logging.FileHandler.limit = 10000000
java.util.logging.FileHandler.count = 10
java.util.logging.FileHandler.append = true
java.util.logging.SimpleFormatter.format = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
- 設定 java.util.logging 讀取設定檔
方法一
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("logging.properties");
try {
LogManager.getLogManager().readConfiguration(input);
}
catch (SecurityException | IOException e) {
e.printStackTrace();
}
方法二
設定 system property, 或在啟動程式時加入參數
example: java -Djava.util.logging.config.file=logging.properties
在不指定設定檔的狀況下, 預設會讀取 System.getProperty("java.home")/lib/logging.properties 檔案, 可參考 LogManager 文件
使用範例
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TestLog {
private static final Log log = LogFactory.getLog(TestLog.class);
public static void main(String[] args) {
log.debug("Debug Message");
log.info("Info Message");
log.warn("Warn Message");
log.error("Error Message");
log.fatal("Fatal Message");
}
}
Log LEVEL 定義比較表
Java Logging |
Commons Logging |
SEVERE |
FATAL |
SEVERE |
ERROR |
WARNING |
WARN |
INFO |
INFO |
CONFIG |
|
FINE |
DEBUG |
FINER |
|
FINEST |
TRACE |
0 comments:
Post a Comment