Файл конфигурации Java logger не вступает в силу - PullRequest
0 голосов
/ 07 января 2019

У меня есть простая Java-программа:

public class UseLog {
    public static final Logger logger = Logger.getLogger("UseLog");
    public static void main(String[] args) {
        logger.info("my4");
    }
}

И файл myConfig.txt:

.level=WARNING
UseLog.level=WARNING

Я компилирую и запускаю его с командной строкой:

java UseLog -Djava.util.logging.config.file=myConfig.txt

Я ожидал, что он ничего не должен печатать, но на самом деле:

Jan 05, 2019 10:46:13 下午 UseLog main
INFO: my4

Похоже, мой конфигурационный файл не эффективен для моей программы. Где я ошибся и как исправить?

1 Ответ

0 голосов
/ 07 января 2019

Ваш файл конфигурации игнорируется, потому что свойство JVM не устанавливается.

Поставьте аргумент jvm перед именем класса, все после имени основного класса является аргументом программы, а не свойством JVM.

java -Djava.util.logging.config.file=myConfig.txt UseLog

Если я немного изменю вашу программу:

package com.soquestion;
import java.util.logging.Logger;

public class Main {
    public static final Logger log = Logger.getLogger("UseLog");

    public static void main(String[] args) {
        System.out.println("arg count: " + args.length);
        log.info("hello from info");
        log.warning("hello from warning");
    }
}

Вывести -D после имени класса:

$ java com.soquestion.Main -Djava.util.logging.config.file=myConfig.txt
arg count: 1
Jan 07, 2019 2:17:17 PM com.soquestion.Main main
INFO: hello from info
Jan 07, 2019 2:17:17 PM com.soquestion.Main main
WARNING: hello from warning

Вывести -D перед именем класса:

$ java -Djava.util.logging.config.file=myConfig.txt com.soquestion.Main
arg count: 0

Вывести -D перед именем класса с помощью обработчика, определенного в файле конфигурации:

handlers = java.util.logging.ConsoleHandler
UseLog.level = WARNING

результат:

$ java -Djava.util.logging.config.file=myConfig.txt com.soquestion.Main
arg count: 0
Jan 07, 2019 2:18:38 PM com.soquestion.Main main
WARNING: hello from warning
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...