slf4j logging with jdk-как включить отладку?

по умолчанию slf4j, при использовании с jdk (slf4j-jdk14-1.6.1.Джар), не регистрирует сообщения отладки. Как их включить?

Я не могу найти информацию ни в официальных документах, ни в интернете, ни здесь о том, как ее включить.

Я нашел некоторую информацию о (не удалось) создании файла в %JDK_HOME% / lib и определении уровня там, в файле конфигурации. Однако я хотел бы определить уровень во время компиляции / выполнения, чтобы я мог запускать и отлаживать свое приложение из своей IDE с помощью различные уровни ведения журнала.

есть ли какая-то переменная среды, которую я могу установить, или VM arg?

3 ответов


почему вы думаете, что он не регистрирует отладочные сообщения?

если вы имеете в виду, что ваш log.debug(String) Регистрация вызовов не заканчивается в java.util.logging файлы журнала, то я думаю, вам нужно настроить logging.properties файл конфигурации, чтобы разрешить сообщения, войдите в


если вы используете реализацию slf4j SimpleLogger, прочитайте это.

там вы можете видеть, что simpleLogger использовать INFO как уровень журнала по умолчанию. Его можно изменить с помощью системного свойства. Это полезно для непроизводственных evironments:

static {

    System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "trace");
}

Я просто положил свой журнал.файл свойств в файле моих приложений WEB-INF/classes (или используйте аргумент командной строки, определенный Neeme Praks, если вы не развертываете в войне), и откройте файл свойств в eclipse, чтобы я мог настроить его для регистрации пакетов и на уровне, который меня интересует.

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

#logging.properties file contents

#Define handlers
handlers=java.util.logging.ConsoleHandler

#Set handler log level
java.util.logging.ConsoleHandler.level=FINE

#Define your logger level
com.company.application.package.package.level=FINE

#Assign your handler to your logger
com.company.application.package.package.handlers=java.util.logging.ConsoleHandler

Вы упомянули о slf4j-jdk14-1.6.1.jar. Это обеспечивает привязку slf4j к java.утиль.лесозаготовительный. Вы должны иметь это в своем пути к классам, но убедитесь, что у вас также есть api slf4j (slf4j-api-1.7.12.jar) в вашем пути к классам.

найти пример ведения журнала.свойства файла по этой ссылке полезно для создания различных регистраторов и обработчиков, чтобы дать вам мелкозернистый контроль над тем, какие журналы идут в консоль, а какие журналы идут в файл:.

и вот руководство slf4j.