如何配置 Kotlin 日志记录记录器



为了在我的 Kotlin 项目中进行日志记录,我正在使用 kotlin 日志记录,这非常好用,但我缺少一个非常核心的点:如何配置记录器的日志级别?

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

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

-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG

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

有人可以帮助我吗?

我们没有办法从 slf4j api 更改日志级别,我们需要依靠实现

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


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

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

请注意,创建记录器后,无法更改日志级别。如果需要动态更改日志记录级别,则可能需要将 log4j 与 SLF4J 一起使用。

我在 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(作为程序选项之一(

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

这是(最近弃用! slf4j-android,但它不会继承令人愉快的行为,例如要求设置系统属性,以便您可以查看调试日志。

如果您无法访问org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY,这似乎适用于org.slf4j:slf4j-simple:2.0.6

    System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "TRACE")

相关内容

  • 没有找到相关文章

最新更新