Как выводить в консоль сообщения с уровнем логирования ниже 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 шт):
Вам надо разобраться с путями, которые Вы передаете в команду. Например вот такой Ваш код с небольшой доработкой, будет отображать необходимые урони:
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 файлы и перекомпилировать код. Попробуйте также задать полный путь к пропертифайлу.