Как выводить в консоль сообщения с уровнем логирования ниже INFO используя java.util.logger

Всем привет. У меня не получается выводить сообщения логов в консоль с уровнем ниже INFO ( я знаю, что по умолчания стоит именно такой уровень ). Я пробовал изменить это значение в файле logging.properties на: Test.Study.level=FINEST (где Test.Study имя класса с пакетом) и через консоль с помощью команды:

D:\IT\Java\src> java -Djava.util.logging.config.file=Test\logging.properties Test.Study запускать программу. Но в консоль все равно продолжают выводится сообщения с логами уровня INFO и выше.

Подскажите, что я делаю не так.

package Test;

import java.util.logging.Logger;

public class Study
{
    private static final Logger logger =
            Logger.getLogger(Study.class.getName());

    public static void main(String[] args)
    {
        logger.fine("Another fine level!");
        logger.info("Info");
        logger.severe("Severe");
    }
}

Содержимое файла logging.properties:

############################################################
#   Default Logging Configuration File
############################################################

handlers= java.util.logging.ConsoleHandler

Test.Study.level=FINEST

java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1

java.util.logging.FileHandler.maxLocks = 100
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter


java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################

Ответы (1 шт):

Автор решения: Alexey R.

Вам надо разобраться с путями, которые Вы передаете в команду. Например вот такой Ваш код с небольшой доработкой, будет отображать необходимые урони:

package Test;

import java.util.logging.Logger;

public class Study {

    static {
        System.setProperty("java.util.logging.config.file","/FULL_PATH/logging.properties");
    }

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

    public static void main(String[] args)
    {
        logger.fine("Another fine level!");
        logger.info("Info");
        logger.severe("Severe");
    }
}

Из командной строки всё также должно работать (проверил). Чтобы в Вашем случае все сработало необходимо чтобы проперти файл находился бы в той же папке, что и *.class файл. Попробуйте удалить class файлы и перекомпилировать код. Попробуйте также задать полный путь к пропертифайлу.

→ Ссылка