Avatar ·

Kotlin 中符合习惯的日志记录方式

大家好!我是 Kotlin 新手,正在从 Java 迁移过来。在 Java 中,我习惯使用 SLF4J 配合 Logback,并像这样声明 logger: ```java private static final Logger logger = LoggerFactory.getLogger(MyClass.class); ``` 在 Kotlin 中,我看到很多人使用 `companion object` 来定义 logger。但我不确定这是否符合习惯。此外,我偶然发现了 `kotlin-logging` 库,它似乎能简化工作。 我当前的代码是这样的: ```kotlin class MyService { companion object { private val logger = LoggerFactory.getLogger(MyService::class.java) } fun doSomething() { logger.info("Doing something") } } ``` 这样能用,但我觉得有点冗长。每次都要写 `companion object` 吗?有没有更简洁的方式?我听说过 extension 函数和 delegated properties,但不知道如何将它们应用到日志记录中。 另外我还关心:在 Kotlin 中如何正确地进行日志记录,以避免出现与 pr 相关的问题?