为了在我的Kotlin项目中进行日志记录,我使用的是kotlin-logging,这非常好用但是我错过了一个非常重要的问题:如何配置记录器的日志级别?
默认情况下,它设置为info,我想将其设置为debug。由于Github页面上没有任何内容,也没有任何方法可以通过编程方式设置级别,所以我查看了slf4j,因为kotlin-logging是一个包装器。
显然我必须像这样设置一个系统属性:
-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG
但我不知道如何在Kotlin中这样做。
任何人都可以帮助我吗?
答案 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
的简单分支,但它不会继承令人愉快的行为,例如要求设置系统属性这样你就可以看到你的调试日志了。