如何配置 kotlin-logging 记录器

how to configure kotlin-logging logger

为了在我的 Kotlin 项目中进行日志记录,我使用了 kotlin-logging,它非常好用,但是我遗漏了一个非常重要的要点:如何配置记录器的日志级别?

默认设置为信息,我想将其设置为调试。由于 Github 页面上没有关于此的内容,也没有任何以编程方式设置级别的方法,我查看了 slf4j,因为 kotlin-logging 是它的包装器。

显然我必须像这样设置系统 属性:

-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG

但是我不知道如何在 Kotlin 中执行此操作。

谁能帮帮我?

We do not have a way to change log level from slf4j api and we need to rely on implementation

通过查看slf4jLogger界面,可以看到所有级别都有isLevelEnabled(),但没有setter。因此,设置级别是特定于实现的,它基于您使用的底层日志记录平台。


从你的问题来看,你似乎使用 slf4j SimpleLogger 作为 slf4j 后面的图层。对于 SimpleLogger,您只能像您已经完成的那样通过属性更改日志级别。 有关详细信息,请参阅 this question

System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");

Please note that once the logger is created the log level can't be changed. If you need to dynamically change the logging level you might want to use log4j with SLF4J.

如果您在 Android 上使用 kotlin-logging,简单的答案是:只需使用 slf4j-handroid

它是(最近弃用!)slf4j-android 的一个简单分支,但它没有继承 令人愉快的 行为,例如要求设置系统属性 这样你就可以看到你的调试日志了。

我在 Spring Boot 应用程序中使用 kotlin-logging。

有效的方法

运行 申请

-Dlogging.level.com.mydomain.myapp=DEBUG

(将 com.mydomain.myapp 替换为所需的包命名空间或 root 全部替换。)

或者您可以将 属性 添加到 应用程序属性 文件

logging.level.com.mydomain.myapp = DEBUG

什么没用

  • -Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG
  • -Dorg.slf4j.simplelogger.defaultlog=DEBUG
  • --debug(作为程序选项之一)