как настроить 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, но не наследует восхитительно поведение, например, требующее установки системных свойств просто чтобы вы могли видеть свои журналы отладки.