如何在 Android 中将输出写入日志?

我想在日志中写入一些调试输出,以便用 logcat 检查它。

如果我向 System.out 写入一些内容,这已经显示在 logcat 中。

什么是干净的方式写入日志,并添加级别和标记到我的输出?

185405 次浏览

使用 android.util.Log和其中定义的静态方法(例如,e()w())。

看看 android.util.Log。它允许您使用不同的日志级别写入日志,并且可以指定不同的标记来对输出进行分组。 比如说

Log.w("myApp", "no network");

将输出一个带有 myApp 标记的警告和消息 no network。

标记只是用来轻松找到您的输出,因为 LogCat的输出有时可能非常长。你可以在你的类中定义:

Private static final String TAG = “ myApp”;

并在调试时使用它

V (TAG,“ did something”) ;

enter image description here

也可以应用 Filter 来只搜索标记。

import android.util.Log;

然后

Log.i("the your message will go here");
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);
}
}

请这样看日志,

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)

您可以使用我的名为 RDALogger 的库。

使用这个库,您可以使用方法名/类名/行号和锚链接记录消息。有了这个链接,当您单击日志时,屏幕就会转到这行代码。

要使用库,必须执行以下实现。

在根部水平梯度

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