我希望将一些调试输出写入日志中,以便使用logcat进行查看。
如果我将一些内容写入System.out,则已经在logcat中显示了。
如何干净地写入日志并添加级别和标签到我的输出?
查看android.util.Log
。它允许您使用不同的日志级别写入日志,并且您可以指定不同的标签来分组输出。例如:
Log.w("myApp", "no network");
将输出一个带有标签 myApp 和消息 no network 的警告。
这个标签只是用来方便查找你的输出结果,因为LogCat的输出有时会非常长。你可以在类中的某处定义:
private static final String TAG = "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)
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
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
最近我发现了一种在安卓中编写日志的方法,我觉得超级棒。
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);
}
}
String one = object.getdata();
Log.d(one,"");
log.d
会有什么不同? - MaduroLog.w(...)
中的w
代表警告。还有其他版本:d
- 调试,e
- 错误,i
- 信息,v
- 冗长,wtf
- 大错特错。;-) - patryk.beza