beh*_*lit 1 logging android kotlin timber-android
我想在单独的模块中使用 wood 来处理我的 Android 应用程序中的日志记录,以便可以从任何模块调用它并记录到内部文件。
问题是,当在单独的类中使用自动标记而不是直接调用木材日志方法时,自动标记不起作用。
例如,我有一个日志记录类,其方法为Logger.kt:
fun d(message: String)
{
Timber.d(message)
}
Run Code Online (Sandbox Code Playgroud)
但是当我从任何地方调用它时,它显然使用日志类作为标记,而不是调用该方法的类。
所以我的问题是,如何通过此方法自动传递调用类?我不想添加像“TAG = classname”这样的附加变量,因为在这种情况下我也可以使用正常的日志记录。
是否可以检索方法的调用类?或者有更好的方法来进行集中日志记录吗?主要目的是不必定义 TAG 变量,同时还能够稍后添加文件日志记录。
您可以使用扩展函数,例如:
fun Any.logd(message: String){
Timber.tag(this.javaClass.simpleName).d(message)
}
Run Code Online (Sandbox Code Playgroud)
这样,该logd方法将在任何地方可用,并且不会与默认日志行为发生冲突。
将this.javaClass.simpleName用作标记,并将与实际调用者类名称一起记录。
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |