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