gpt4 book ai didi

logging - 在没有类的包级别创建记录器

转载 作者:行者123 更新时间:2023-12-04 02:12:36 25 4
gpt4 key购买 nike

我有一个 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 1 link 2 .如果没有类(class),有什么方法?

我想避免手动编写标识符并在包名称更改时对其进行调整。有没有办法在 kotlin 中获取包名?

最佳答案

这一行应该可以完成这项工作:

private val log = LoggerFactory.getLogger(object{}::class.java.`package`.name)

该对象什么都不做,但 kotlin 会创建一个类来保存代码。然后您可以访问类、包、包名称。

备注 反引号的用法是因为 package是保留关键字。在java中这不是问题,因为真正的方法是 getPackage() . kotlin 的较短语法通过直接访问名称现在与保留关键字冲突的属性来转换此方法调用。

关于logging - 在没有类的包级别创建记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45346939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com