как настроить Kotlin-logging logger
для ведения журнала в моем проекте Kotlin я использую Котлин-ведение журнала который действительно приятно использовать, однако мне не хватает центральной точки: как я могу настроить уровень журнала регистратора?
по умолчанию он установлен в info, и я хотел бы установить его в debug. Поскольку на странице Github нет ничего об этом, и нет никакого метода для установки уровня программно, я заглянул в slf4j, поскольку kotlin-logging-это оболочка вокруг этого.
по-видимому, я должен установить системное свойство следующим образом:
-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG
однако я понятия не имею, как это сделать в Котлине.
кто-нибудь может мне помочь?
2 ответов
у нас нет способа изменить уровень журнала из slf4j api, и нам нужно полагаться на реализацию
глядя на Logger
интерфейс slf4j
, вы можете видеть, что он имеет isLevelEnabled()
для всех уровней, но не сеттер. Поэтому установка уровня зависит от реализации и основана на используемой базовой платформе ведения журнала.
из вашего вопроса похоже, что вы используете slf4j SimpleLogger
как слой за slf4j
. Для SimpleLogger
, вы можете изменить уровень журнала только через свойства, как вы уже сделали.
См.этот вопрос для получения дополнительной информации.
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");
обратите внимание, что после создания регистратора уровень журнала не может быть изменен. Если вам нужно динамически изменить уровень ведения журнала, вы можете использовать log4j с SLF4J.
Если вы используете kotlin-logging
на Android простой ответ: просто используйте slf4j-handroid.
это простая вилка (недавно устаревшая!) slf4j-android
, но не наследует восхитительно поведение, например, требующее установки системных свойств просто чтобы вы могли видеть свои журналы отладки.