有没有让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”下阅读了以下内容默认情况下,Android系统发送stdout和stderr(System.out和 System.err)输出到/ dev / null。在运行Dalvik VM的进程中,您 可以让系统将输出的副本写入日志文件。在这 例如,系统使用日志标记stdout将消息写入日志 和stderr,都优先考虑。
要以这种方式路由输出,请停止正在运行的仿真器/设备 实例然后使用shell命令setprop来启用 重定向输出。这是你如何做到的:
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
这三个命令也无济于事。是否可以使ConsoleHandler的输出出现在Logcat输出中?
答案 0 :(得分:1)
如果你没有绑定ConsoleHandler
,我建议使用slf4j-android
(转储到logcat)或logback-android
(有几个目的地选项,包括{{3} }})。