2011-03-24 17 views

回答

8

編輯:下面是當時爲Java 6編寫的。對於7和更高版本,請參閱下面David的答案。

AFAIK沒有這樣的財產。有一個java.util.logging.FileHandler.pattern,但這是設置輸出文件名的模式,而不是日誌記錄格式。

在實用程序日誌API中配置輸出格式的方式是設置Formatter。默認情況下,SimpleFormatter附加到您的ConsoleHandler。這個格式化程序只是對模式進行硬編碼,並且不允許你設置它。

如果您需要不同的輸出格式,則必須實施自己的Formatter或使用其他日誌框架,如logback

27

這個問題已經被人回答了,但我想提供一些新的信息:

由於Java 7,可以配置與SimpleFormatter日誌信息的輸出模式。

您可以在日誌屬性使用該屬性文件:

java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n 

如果您需要在模式語法的更多信息,看看這裏: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

在屬性值中的數字可參照上述提供給格式化程序的參數。 請參考官方的Java文檔的更多信息: http://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html

示例配置文件logging.properties

handlers = java.util.logging.ConsoleHandler 
java.util.logging.ConsoleHandler.level = ALL 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 
# Pattern works since Java 7 
java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n 

當你打電話給你的java程序,你可以指定你的配置文件作爲參數:

java -jar myProgram.jar -Djava.util.logging.config.file=logging.properties 
+0

我也必須爲此設置根級別'.level = ALL'。 – haridsv 2014-08-27 10:23:10