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


153

我想将一些调试输出写入日志,以使用logcat对其进行检查。

如果我向System.out写东西,它已经显示在logcat中。

写入日志并将级别和标签添加到输出中的干净方法是什么?

Answers:



20

Tag只是用来轻松找到您的输出,因为LogCat的输出有时会很长。您可以在课程中的某处定义:

私有静态最终String TAG =“ myApp”;

并在调试时使用

Log.v(TAG,“做点什么”);

在此处输入图片说明

您也可以应用过滤器以仅搜索标签。


17

使用android.util.Log和在那里定义的静态方法(例如e()w())。



5

请以这种方式查看日志,

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)

1

您可以使用我的名为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


0

最近,我发现这种在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);
        }
    }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.