gpt4 book ai didi

android - 在带有自动标记的单独模块中使用木材

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

我想在一个单独的模块中使用木材来处理我的 android 应用程序中的日志记录,以便可以从任何模块调用它并记录到内部文件。
问题是自动标记在单独的类中使用而不是直接调用木材日志方法时不起作用。
例如,我有一个日志类,其方法位于 Logger.kt :

fun d(message: String)
{
Timber.d(message)
}
但是当我从任何地方调用它时,它显然使用日志类作为标记,而不是调用方法的类。
所以我的问题是,我怎样才能通过这种方法自动传递调用类?我不想添加像“TAG = classname”这样的附加变量,因为在这种情况下我还不如使用普通日志记录。
是否可以检索方法的调用类?还是有更好的方法来进行中央日志记录?主要目的是不必定义 TAG 变量,同时还能够在以后添加文件日志记录。

最佳答案

您可以使用扩展功能,例如:

fun Any.logd(message: String){
Timber.tag(this.javaClass.simpleName).d(message)
}
这样 logd方法将在任何地方可用,并且不会与默认日志行为冲突。 this.javaClass.simpleName将用作 TAG,并将使用实际的调用者类名进行记录。

关于android - 在带有自动标记的单独模块中使用木材,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62767781/

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