java.util.logging не будет входить в файл - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь получить 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

Iотредактировал файл свойств по умолчанию так:

.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 аргументы виртуальной машины:

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

Но если я это сделаю, это ничего не изменит.

Есть предложения?

1 Ответ

0 голосов
/ 12 октября 2018

Из ваших 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
...