【发布时间】:2025-11-30 14:55:03
【问题描述】:
我有一个 kotlin 文件,其中包含几个包级函数并且没有任何类。我想在这个类中添加日志记录,但很难找到一种优雅的方式来给记录器一个标识符。
这是一个例子
package com.example.myproject.my_package
import org.slf4j.LoggerFactory
private val log = LoggerFactory.getLogger("com.example.myproject.my_package")
fun bla(term: String) {
log.info("invoked with $term")
}
有非常好的最佳实践来使用类来找到一个好的标识符:link 1link 2。如果没有类怎么办?
我想避免手动编写标识符并在包名称更改时对其进行调整。有没有办法在kotlin中获取包名?
【问题讨论】:
-
*函数是实用函数时很好。但逻辑应该位于
class(或object)中。 -
为什么?面向对象编程只是开发代码的一种方式,还有其他范式是 kotlin 非常适合的。
-
这不是因为 OOP 范式。 (顺便说一下,
object代表的 Singleton 是一种过程模式。)这是因为你的函数被收集在一个文件中,这不是一个全功能范围——它在编程语言中没有表示形式。跨度> -
@FrankSchmitt 完美,就像一个魅力!