How do I write outputs to the Log in Android?

AndroidLoggingLogcat

Android Problem Overview


I want to write some debugging output to the log to review it with logcat.

If I write something to System.out this is already displayed in logcat.

What is the clean way to write to the log and add levels and tags to my output?

Android Solutions


Solution 1 - Android

Look into android.util.Log. It lets you write to the log with various log levels, and you can specify different tags to group the output. For example

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

will output a warning with the tag myApp and the message no network.

Solution 2 - Android

The Tag is just used to easily find your output, because the Output of LogCat can be sometimes very long. You can define somewhere in your class:

> private static final String TAG = "myApp";

and use it when debugging

> Log.v(TAG, "did something");

enter image description here

You can apply as well a Filter to only search for the tag.

Solution 3 - Android

Use android.util.Log and the static methods defined there (e.g., e(), w()).

Solution 4 - Android

import android.util.Log;

and then

Log.i("the your message will go here"); 

Solution 5 - Android

Please see the logs as this way,

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)

Solution 6 - Android

You can use my libary called RDALogger. Here is github link.

With this library, you can log your message with method name/class name/line number and anchor link. With this link, when you click log, screen goes to this line of code.

To use library, you must do implementations below.

in root level gradle

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

in app level gradle

dependencies {
	        implementation 'com.github.ardakaplan:RDALogger:1.0.0'
	}

For initializing library, you should start like this (in Application.class or before first use)

RDALogger.start("TAG NAME").enableLogging(true);

And than you can log whatever you want;

    RDALogger.info("info");
    RDALogger.debug("debug");
    RDALogger.verbose("verbose");
    RDALogger.warn("warn");
    RDALogger.error("error");
    RDALogger.error(new Throwable());
    RDALogger.error("error", new Throwable());

And finally output shows you all you want (class name, method name, anchor link, message)

08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info

Solution 7 - Android

String one = object.getdata();
Log.d(one,"");

Solution 8 - Android

Recently I found this approach to writing logs in android, which I think is super awesome.

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);
        }
    }

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJanuszView Question on Stackoverflow
Solution 1 - AndroidErich DouglassView Answer on Stackoverflow
Solution 2 - Androiduser1767754View Answer on Stackoverflow
Solution 3 - AndroidCommonsWareView Answer on Stackoverflow
Solution 4 - AndroidAtreya RathView Answer on Stackoverflow
Solution 5 - AndroidDnyaneshwar PanchalView Answer on Stackoverflow
Solution 6 - AndroidArdaView Answer on Stackoverflow
Solution 7 - AndroidVickie KangareView Answer on Stackoverflow
Solution 8 - AndroidTushar PandeyView Answer on Stackoverflow