簡體   English   中英

java.util.logging不會記錄到文件

[英]java.util.logging won't log to file

我正在努力使java.util.logging記錄到文件,而不是僅記錄到Eclipse中的控制台。

public class TestDefaultConfiguration {

    private static Logger logger = Logger.getLogger(TestDefaultConfiguration.class.getName());

    public static void main(String[] args) {
        System.out.println("-- main method starts --");
        logger.info("an info msg");
        logger.warning("a warning msg!");
        logger.severe("a severe msg!");
    }
}

這里是屬性:

C:\Program Files\Java\jre1.8.0_152\lib\logging.properties

我將默認屬性文件編輯為:

.level= INFO
# default file output is in user's home directory.
#java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.pattern = C:/temp/test/MyLogFile2.log

java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
#java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

當我調試測試類時,我可以在logger.manager.props看到這些屬性被拾取。 到現在為止還挺好。

為什么在C:/temp/test/MyLogFile2.log沒有創建日志文件?

不確定是否應在Eclipse配置VM參數中添加:

-Djava.util.logging.config.file="C:/Program Files/Java/jre1.8.0_152/lib/logging.properties"

但是,如果我這樣做,那不會有任何改變。

有什么建議么?

在logging.properties中,您沒有顯示將處理程序附加到記錄器的部分。 這在文件中作為注釋進行了說明

# "handlers" specifies a comma separated list of log Handler 
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

使用記錄器調試代碼來查看處理程序是否已附加到根記錄器。

將以下行添加到您的屬性文件:

handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM