Maneira idiomática de fazer logging em Kotlin: como fazer corretamente e sem boilerplate?
Olá, colegas! Sou novo em Kotlin (migrei do Java) e não consigo entender como organizar o logging corretamente no projeto. Em Java, eu costumava escrever algo como:
```kotlin
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
```
E depois usar `log.info(...)`. Em Kotlin, isso parece verboso e feio: tenho que especificar `javaClass` ou `this::class.java` toda vez. Resulta em muito código boilerplate. Tentei escrever assim:
```kotlin
class MyService {
private val logger = LoggerFactory.getLogger(MyService::class.java)
fun doSomething() {
logger.info("Fazendo algo")
}
}
```
Mas isso ainda se repete em cada classe. Ouvi falar sobre kotlin-logging e extension properties, mas não entendo completamente como funciona de forma idiomática. Por favor, me digam como é comum fazer logging em projetos Kotlin para que o código seja limpo, conciso e sem dependências desnecessárias? Existe algum padrão ou biblioteca padrão que...