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 相关的问题?