Сделать вывод ConsoleHandler в выводе logcat - PullRequest
0 голосов
/ 07 июля 2011

Есть ли способ заставить вывод ConsoleHandler отображаться в logcat?

У меня есть следующее в коде

ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setFormatter (new DMLogFormatter());
consoleHandler.setLevel (Level.ALL);

FileHandler fileHandler = new FileHandler ("logFile", true);
fileHandler.setFormatter (new DMLogFormatter());
fileHandler.setLevel (Level.ALL);

Logger logger = Logger.getLogger ("log");
logger.setUseParentHandlers (false);
logger.setLevel (Level.ALL);
logger.addHandler (fileHandler);
logger.addHandler (consoleHandler);

Вывод в FileHandler работает нормально.Они не отображаются в ConsoleHandler.

Я читал о следующем в разделе «Просмотр stdout и stderr», приведенном в документации Logcat

По умолчаниюСистема Android отправляет выходные данные stdout и stderr (System.out и System.err) в / dev / null.В процессах, запускающих виртуальную машину Dalvik, система может записать копию выходных данных в файл журнала.В этом случае система записывает сообщения в журнал, используя теги журнала stdout и stderr, оба с приоритетом I.

Для маршрутизации вывода таким способом вы останавливаете работающий экземпляр эмулятора / устройства и затем используетекоманда оболочки setprop для включения перенаправления вывода.Вот как это делается:

$ остановка оболочки adb

$ оболочка adb setprop log.redirect-stdio true

$ запуск оболочки adb

Эти три команды тоже не помогли.Можно ли заставить вывод ConsoleHandler отображаться в выводе Logcat?

1 Ответ

1 голос
/ 03 января 2012

Если вы не привязаны к ConsoleHandler, я рекомендую использовать slf4j-android (который создает дамп в logcat) или logback-android (который имеет несколько вариантов назначенияв том числе LogcatAppender).

...