2017-05-08 6 views
-3

スタックを印刷したい(例外ブロックのエラー後にtry catch)、私は外部ファイル(.txt)ですべてを印刷したいと思います。ファイルはアンドロイドフォルダのどこかに置くことができます。事前外部ファイルに対する例外Androidのstacktraceの出力方法

+0

:(SL4FJのような)ロガーライブラリを使用します。別の文字列を書くのと同じように、スタックトレースをファイルに書き込むこともできます。 – m0skit0

+0

Logcatの何が問題ですか? –

+0

また、おそらく[この回答](http://stackoverflow.com/a/12053112/1450348) – manman

答えて

-1

おかげで、あなたは、このようにそれを行うことができます。

try{ 
    // action 
} catch (IOException e) { 
    PrintWriter writer = new PrintWriter("stacktrace.txt"); 
    e.printStackTrace(writer); 
    writer.close(); 
} 
+0

を見て、私は "stacktrace.txt"(それを参照してください)ファイルを取ることができますか? –

+1

@UmbertoDiCanitoファイルエクスプローラですか? – m0skit0

+0

それは、メソッドが非難されていると私に教えて.. –

0

オープン/あなたのファイルへの書き込みとにあなたのcatchブロックを変更するPrintWriterを宣言:まあ

catch(Exception e) { 
    e.printStackTrace(your_print_writer); 
} 
0

それは問題になる可能性がありますが、それは完全に実行可能です。

try { 
    badMethod(); 
} catch(SomeException e) { 
    try (FileWriter writer = new FileWriter("file.txt")) { 
     e.printStackTrace(writer); 
    } catch(IOException ioexception) { 
     // do something here 
    } 
} 
0

これを実行する方法はたくさんありますが、System.errを目的のファイルにリダイレクトするのが最も簡単な方法ですが、Exception.printStackTrace()を呼び出すだけです。

は、標準エラー出力をリダイレクトするには、次の推奨、その後

PrintStream ps = new PrintStream("./errors.txt"); 
System.setErr(ps); 

と...

catch(Exception e) { 
    e.printStackTrace(); 
} 
+0

私はファイルerrors.txtを見ることができますか? –

+0

任意のファイルパスを指定できます。この場合、ファイルは現在のディレクトリにあります。通常は、アプリが実行されているディレクトリです。どのテキストビューアでも見ることができます。アンドロイドで私はESファイルエクスプローラスイートを使用します。 – LuisGP

+0

私はあなたの質問を解決しましたか?はいの場合は、答えとしてマークを考えてください。 – LuisGP

関連する問題