2

遅いデバイスで STRICT MODE 例外が発生しました:

 D/StrictMode: StrictMode policy violation; ~duration=494 ms: android.os.StrictMode$StrictModeDiskWriteViolation: policy=87 violation=1
        at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:732)
        at dalvik.system.BlockGuard$WrappedFileSystem.write(BlockGuard.java:170)
        at java.io.FileOutputStream.write(FileOutputStream.java:300)
        at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:164)
        at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:59)
        at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:324)
        at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:276)
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
        at org.apache.log4j.Category.callAppenders(Category.java:206)
        at org.apache.log4j.Category.forcedLog(Category.java:391)
        at org.apache.log4j.Category.debug(Category.java:260)

メインスレッドの最初のロギング操作で。でlog4jを使用しています。RollingFileAppender

メインスレッドのファイルに書き込みますか? log4j私の意見ではそれは奇妙です...メインスレッドからではなく、他のスレッドからログファイルに強制的に書き込むにはどうすればよいですか?

4

1 に答える 1

0

"単純"。

Log4j アペンダーを作成し、常にバックグラウンド スレッドからログを呼び出します。

たとえば、AsyncTaskdoInBackgroundメソッドを使用して呼び出しを行うことができます。

于 2014-11-12T00:00:05.270 に答える