题
我想写一些调试输出到日志与logcat的审查。
如果我写的东西到System.out这已经显示在logcat中。
什么是干净的方法来写日志,并添加水平和标签,以我的输出?
解决方案
考查 android.util.Log
。它可以让你写日志的各种日志级别,你可以到指定组不同的标签输出。
例如
Log.w("myApp", "no network");
将输出与标签对myApp和消息没有网络的警告。
其他提示
标签只是用来很容易地找到你的输出,因为输出的 logcat的有时可能很长。您可以在类中定义的某个地方:
私有静态最后字符串标记= “对myApp”;
和调试时使用它
Log.v(TAG, “做了一些”);
您可以和过滤器应用于仅搜索标签。
使用android.util.Log
和静态方法定义那里(例如,e()
,w()
)。
import android.util.Log;
和然后
Log.i("the your message will go here");
请参阅日志,这种方式,
Log.e("ApiUrl = ", "MyApiUrl") (error)
Log.w("ApiUrl = ", "MyApiUrl") (warning)
Log.i("ApiUrl = ", "MyApiUrl") (information)
Log.d("ApiUrl = ", "MyApiUrl") (debug)
Log.v("ApiUrl = ", "MyApiUrl") (verbose)
String one = object.getdata();
Log.d(one,"");
最近我发现这种方法在Android的写日志,我认为这是超级真棒。
public static final boolean FORCED_LOGGING = true;
private static final int CALLER_STACK_INDEX = 3;
public static void showLogs(String message) {
if (FORCED_LOGGING) {
StackTraceElement caller = Thread.currentThread().getStackTrace()[CALLER_STACK_INDEX];
String fullClassName = caller.getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
String methodName = caller.getMethodName();
int lineNumber = caller.getLineNumber();
Log.i("*** " + className + "." + methodName + "():" + lineNumber + "\n" , message);
}
}
您可以用我的libary称为RDALogger。下面是github上链接。
使用这个库,你可以登录使用方法名/类名/行号和锚链接你的消息。有了这个链接,当你点击日志,屏幕进入这行代码。
要使用库,你必须做下面的实现。
在根级别的gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在应用级的gradle
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
有关初始化库,就应该开始像这样(在Application.class或之前第一次使用)
RDALogger.start("TAG NAME").enableLogging(true);
和比你可以登录任何你想要的;
RDALogger.info("info");
RDALogger.debug("debug");
RDALogger.verbose("verbose");
RDALogger.warn("warn");
RDALogger.error("error");
RDALogger.error(new Throwable());
RDALogger.error("error", new Throwable());
和最后输出显示所有要(类名,方法名,锚点链接,消息)
08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29) /// IN METHOD : onCreate
info
不隶属于 StackOverflow