如何配置kotlin-logging记录器

Jak*_*ter 9 logging kotlin kotlin-logging

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

默认情况下,它设置为info,我想将其设置为调试.由于Github页面上没有任何内容,也没有任何方法可以通过编程方式设置级别,所以我查看了slf4j,因为kotlin-logging是一个包装器.

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

-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG
Run Code Online (Sandbox Code Playgroud)

但是我不知道怎么在Kotlin这样做.

有人可以帮帮我吗?

Yoa*_*erg 8

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

通过查看Logger界面slf4j,您可以看到它具有isLevelEnabled()所有级别,但不是设置器.因此,设置级别是特定于实现的,它基于您使用的基础日志记录平台.


从你的问题看起来你slf4j SimpleLogger用作背后的层slf4j.因为SimpleLogger,您只能通过您已经完成的属性更改日志级别.有关更多信息,请参阅此问题.

System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");
Run Code Online (Sandbox Code Playgroud)

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


Pau*_*son 6

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

什么有效

运行应用程序

-Dlogging.level.com.mydomain.myapp=DEBUG
Run Code Online (Sandbox Code Playgroud)

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

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

logging.level.com.mydomain.myapp = DEBUG
Run Code Online (Sandbox Code Playgroud)

什么不起作用

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