Timber ライブラリを使用して現在の行番号とメソッド名を記録することは可能ですか?
予想される LogCat の結果:
ismaeldivita.myapp I/[L:22] [M:onResume] [C:HomeActivity]: Praise the log!
Timber ライブラリを使用して現在の行番号とメソッド名を記録することは可能ですか?
予想される LogCat の結果:
ismaeldivita.myapp I/[L:22] [M:onResume] [C:HomeActivity]: Praise the log!
私自身の質問に答えます。
新しい DebugTree クラスを作成するだけです
public class MyDebugTree extends Timber.DebugTree {
@Override
protected String createStackElementTag(StackTraceElement element) {
return String.format("[L:%s] [M:%s] [C:%s]",
element.getLineNumber(),
element.getMethodName(),
super.createStackElementTag(element));
}
}
そしてあなたの木を材木に植えます:
public class App extends Application {
@Override
public void onCreate(){
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new MyDebugTree());
} else {
//TODO plant your Production Tree
}
}
}
それが、Kotlinを使用してApplicationクラスで解決した方法です:
class App : Application() {
override fun onCreate() {
super.onCreate()
initLogger()
}
private fun initLogger() {
if (BuildConfig.DEBUG) {
Timber.plant(object : Timber.DebugTree() {
override fun createStackElementTag(element: StackTraceElement): String? {
return "(${element.fileName}:${element.lineNumber})#${element.methodName}"
}
})
}
}