Как фильтровать только мой журнал приложений в IntelliJ logcat? - программирование
Подтвердить что ты не робот

Как фильтровать только мой журнал приложений в IntelliJ logcat?

В IntelliJ я пытаюсь прочитать logcat для поиска ошибок.

Проблема в том, что все журналы приложений присутствуют в окне Android.

Как отображать только релевантный журнал?

Я не ищу теги, так как я хочу просматривать Exception throws, Segfaults из JNI и т.д.

Спасибо!

4b9b3361

Ответ 1

Вы можете фильтровать по идентификатору процесса (PID):

Filter by PID

Единственным недостатком является то, что PID изменяется, и вам придется настраивать фильтр после перезапуска каждого приложения.

Ответ 2

Фильтрация на основе приложения (пакета) недоступна в IntelliJ IDEA (текущая версия: 12).

Ответ 3

РЕДАКТОР: Все, что выше горизонтального правила, является моим новым ответом (обновлено 5/17/13):

Я бы предложил перейти к новой Android Studio IDE (которая основана на IntelliJ). Это позволяет фильтровать по имени пакета.


Вы можете проголосовать за функцию, которая будет добавлена ​​здесь: http://youtrack.jetbrains.com/issue/IDEA-95780

Тем временем вы можете подумать об упаковке класса Android Log, чтобы добавить суффикс/префикс, который вы могли бы фильтровать. Что-то вроде следующего:

/**
 * Wrapper for the Android {@link Log} class.
 * <br><br>
 * The primary reason for doing this is to add a unique prefix to all tags for easier filtering
 * in IntelliJ IDEA (since in v12 there is no way to filter by application).
 *
 * @author gloesch
 */
public class Logger {

    private static final String FILTER = "(MY APP) ";

    public static void d(String tag, String message) {
        Log.d(tag.concat(FILTER), message);
    }

    public static void i(String tag, String message) {
        Log.i(tag.concat(FILTER), message);
    }

    public static void v(String tag, String message) {
        Log.v(tag.concat(FILTER), message);
    }

    public static void e(String tag, String message) {
        Log.e(tag.concat(FILTER), message);
    }

    public static void w(String tag, String message) {
        Log.w(tag.concat(FILTER), message);
    }

    public static void wtf(String tag, String message) {
        Log.wtf(tag.concat(FILTER), message);
    }
}

Ответ 4

В зависимости от того, что вы пытаетесь сделать. В окне logcat у вас должно быть [не] пустое окно с именем "Фильтры" с + или - рядом с ним (как показано в IntelliJ IDEA 12), и оно выведет окно следующим образом:

Filter window

Если тег журнала не является тем, что вам нужно, вы можете фильтровать на основе регулярного выражения в самом сообщении журнала (например, если сообщение всегда начинается с seek error, тогда введите seek, и он должен его найти. вы устанавливаете Log Level в Verbose, он должен соответствовать всем, что записывается в logcat.