如何配置kotlin-logging logger

时间:2017-03-31 18:01:37

标签: logging kotlin kotlin-logging

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

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

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

-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG

但我不知道如何在Kotlin中这样做。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:7)

  

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

通过查看slf4j的{​​{3}}界面,您可以看到所有级别都有isLevelEnabled(),但不是设置者。因此,设置级别是特定于实现的,它基于您使用的基础日志记录平台。

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

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

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

答案 1 :(得分:2)

我正在 Spring Boot 应用程序中使用kotlin日志记录。

什么起作用了

使用

运行应用程序
-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(作为程序选项之一)

答案 2 :(得分:0)

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

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