我想打印堆棧(在異常塊中發生錯誤之後,try catch
),但我想要在外部文件(.txt)中打印所有文件,我可以在android文件夾中找到該文件。如何在外部文件上打印Android例外的stacktrace?
在此先感謝
我想打印堆棧(在異常塊中發生錯誤之後,try catch
),但我想要在外部文件(.txt)中打印所有文件,我可以在android文件夾中找到該文件。如何在外部文件上打印Android例外的stacktrace?
在此先感謝
你可以這樣來做:
try{
// action
} catch (IOException e) {
PrintWriter writer = new PrintWriter("stacktrace.txt");
e.printStackTrace(writer);
writer.close();
}
打開/聲明PrintWriter
寫信給你的文件,並改變你的catch塊:
catch(Exception e) {
e.printStackTrace(your_print_writer);
}
好,這可能是一個問題,但它是完全可行的:
try {
badMethod();
} catch(SomeException e) {
try (FileWriter writer = new FileWriter("file.txt")) {
e.printStackTrace(writer);
} catch(IOException ioexception) {
// do something here
}
}
有很多方法可以做到這一點,但也許最簡單的方法是將System.err重定向到所需的文件,然後簡單地調用Exception.printStackTrace();
重定向標準錯誤輸出:
PrintStream ps = new PrintStream("./errors.txt");
System.setErr(ps);
然後......
catch(Exception e) {
e.printStackTrace();
}
推薦:使用記錄器庫(如SL4FJ)。另外,你可以像寫其他任何字符串一樣將堆棧跟蹤寫入文件。 – m0skit0
Logcat出了什麼問題? –
另外,可能看看[這個答案](http://stackoverflow.com/a/12053112/1450348) – manman