Можем ли мы отключить "болтливость" в logcat? [дубликат]
На этот вопрос уже есть ответ здесь:
Итак, я пытаюсь найти неуловимый баг в большой кодовой базе. Таким образом, я вложил много логинов в свое приложение. Мне повезло, что над этим работают несколько тестировщиков. Однако я обнаружил, что многие из моих журналов logcat отсутствуют. Они скрыты как "болтливые". Например1799 12017 I logd: uid=10007 chatty comm=Binder_B, expire 4 lines
Я нашел некоторые упоминания об использовании команды adb
adb logcat -p
Но я не могу найти никакой документации для-p. я также обнаружил, что со многими устройствами (возможно, со всеми устройствами на Marshmallow) это не поддерживается.
Кроме того, что устройство подключено к Android Studio / Eclipse, есть ли способ остановить "болтливость" от сокрытия моих журналов?
2 ответа:
Я также не могу найти документацию, но в соответствии с Выпуск 202457-android-отключить chatty фильтрацию сообщений журнала (I / chatty ... expire N lines) - Android Open Source Project-Issue Tracker требуемая команда
adb logcat -P ""
Я создал свой собственный отладчик и DEBUG_MODE & DEBUG_WITH_STACKTRACE_MODE включены true в build.gradle debug{} и false bydefault
public class AppLoger { public static boolean DEBUG_MODE = BuildConfig.LOG_DEBUG_MODE; public static boolean DEBUG_WITH_STACKTRACE_MODE = BuildConfig.LOG_DEBUG_WITH_STACKTRACE_MODE; /** * @param cls Class<T> * @param message String * @author Android Lead */ public static <T> void logInfo(Class<T> cls, String message) { if (DEBUG_MODE || DEBUG_WITH_STACKTRACE_MODE) { String tag = cls.getName(); Log.i(tag, "-----"); Log.i(tag, LogType.INFO + ": " + message); if (DEBUG_WITH_STACKTRACE_MODE) { Log.i(tag, getStackTrace()); } } } /** * @param cls Class<T> * @param message String * @author Android Lead */ public static <T> void logWarning(Class<T> cls, String message) { if (DEBUG_MODE || DEBUG_WITH_STACKTRACE_MODE) { String tag = cls.getName(); Log.w(tag, "-----"); Log.w(tag, LogType.WARNING + ": " + message); if (DEBUG_WITH_STACKTRACE_MODE) { Log.w(tag, getStackTrace()); } } } /** * @param cls Class<T> * @param message String * @author Android Lead */ public static <T> void logError(Class<T> cls, String message) { if (DEBUG_MODE || DEBUG_WITH_STACKTRACE_MODE) { String tag = cls.getName(); Log.e(tag, "-----"); Log.e(tag, LogType.ERROR + ": " + message); if (DEBUG_WITH_STACKTRACE_MODE) { Log.e(tag, getStackTrace()); } } } /** * @param cls Class<T> * @param message String * @author Android Lead */ public static <T> void logError(Class<T> cls, String message, Throwable e) { if (DEBUG_MODE || DEBUG_WITH_STACKTRACE_MODE) { String tag = cls.getName(); Log.e(tag, "-----"); Log.e(tag, LogType.ERROR + ": " + message, e); if (DEBUG_WITH_STACKTRACE_MODE) { Log.e(tag, getStackTrace()); } } } /** * @param tag String * @param msg String/JSON/ArrayList * @author Android Lead */ public static void e(String tag, Object msg) { if (DEBUG_MODE || DEBUG_WITH_STACKTRACE_MODE) Log.e(tag, "" + msg); } /** * @param tag String * @param msg String/JSON/ArrayList * @author Android Lead */ public static void i(String tag, Object msg) { if (DEBUG_MODE || DEBUG_WITH_STACKTRACE_MODE) Log.i(tag, "" + msg); } /** * @author Android Lead */ private static String getStackTrace() { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); new Throwable().printStackTrace(pw); return sw.toString(); } private enum LogType { INFO, WARNING, ERROR } }