| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| package io.flutter; | |
| import androidx.annotation.NonNull; | |
| import androidx.annotation.Nullable; | |
| /** | |
| * Port of {@link android.util.Log} that only logs in {@link io.flutter.BuildConfig#DEBUG} mode and | |
| * internally filters logs based on a {@link #logLevel}. | |
| */ | |
| public class Log { | |
| private static int logLevel = android.util.Log.DEBUG; | |
| public static int ASSERT = android.util.Log.ASSERT; | |
| public static int DEBUG = android.util.Log.DEBUG; | |
| public static int ERROR = android.util.Log.ERROR; | |
| public static int INFO = android.util.Log.INFO; | |
| public static int VERBOSE = android.util.Log.VERBOSE; | |
| public static int WARN = android.util.Log.WARN; | |
| /** | |
| * Sets a log cutoff such that a log level of lower priority than {@code logLevel} is filtered | |
| * out. | |
| * | |
| * <p>See {@link android.util.Log} for log level constants. | |
| */ | |
| public static void setLogLevel(int logLevel) { | |
| Log.logLevel = logLevel; | |
| } | |
| public static void println(@NonNull int level, @NonNull String tag, @NonNull String message) { | |
| if (BuildConfig.DEBUG && logLevel <= level) { | |
| android.util.Log.println(level, tag, message); | |
| } | |
| } | |
| public static void v(@NonNull String tag, @NonNull String message) { | |
| if (BuildConfig.DEBUG && logLevel <= android.util.Log.VERBOSE) { | |
| android.util.Log.v(tag, message); | |
| } | |
| } | |
| public static void v(@NonNull String tag, @NonNull String message, @NonNull Throwable tr) { | |
| if (BuildConfig.DEBUG && logLevel <= android.util.Log.VERBOSE) { | |
| android.util.Log.v(tag, message, tr); | |
| } | |
| } | |
| public static void i(@NonNull String tag, @NonNull String message) { | |
| if (BuildConfig.DEBUG && logLevel <= android.util.Log.INFO) { | |
| android.util.Log.i(tag, message); | |
| } | |
| } | |
| public static void i(@NonNull String tag, @NonNull String message, @NonNull Throwable tr) { | |
| if (BuildConfig.DEBUG && logLevel <= android.util.Log.INFO) { | |
| android.util.Log.i(tag, message, tr); | |
| } | |
| } | |
| public static void d(@NonNull String tag, @NonNull String message) { | |
| if (BuildConfig.DEBUG && logLevel <= android.util.Log.DEBUG) { | |
| android.util.Log.d(tag, message); | |
| } | |
| } | |
| public static void d(@NonNull String tag, @NonNull String message, @NonNull Throwable tr) { | |
| if (BuildConfig.DEBUG && logLevel <= android.util.Log.DEBUG) { | |
| android.util.Log.d(tag, message, tr); | |
| } | |
| } | |
| public static void w(@NonNull String tag, @NonNull String message) { | |
| android.util.Log.w(tag, message); | |
| } | |
| public static void w(@NonNull String tag, @NonNull String message, @NonNull Throwable tr) { | |
| android.util.Log.w(tag, message, tr); | |
| } | |
| public static void e(@NonNull String tag, @NonNull String message) { | |
| android.util.Log.e(tag, message); | |
| } | |
| public static void e(@NonNull String tag, @NonNull String message, @NonNull Throwable tr) { | |
| android.util.Log.e(tag, message, tr); | |
| } | |
| public static void wtf(@NonNull String tag, @NonNull String message) { | |
| android.util.Log.wtf(tag, message); | |
| } | |
| public static void wtf(@NonNull String tag, @NonNull String message, @NonNull Throwable tr) { | |
| android.util.Log.wtf(tag, message, tr); | |
| } | |
| @NonNull | |
| public static String getStackTraceString(@Nullable Throwable tr) { | |
| return android.util.Log.getStackTraceString(tr); | |
| } | |
| } |