Android でセキュリティ関連のメッセージのロギング メカニズムを実装する予定です。Logクラスのような Android ソース コードで使用できるようにしたいです。SecuLog.log(String msg);
通常のログとは次の点で異なります。
- DEBUG、INFOなどのレベルはありません...
- 出力は、デバイス上のファイルに 直接入る必要があります。たとえば、Logcat の出力をリダイレクトする必要はありません。
複数のプロセスがセキュリティ関連のメッセージをログに記録できるため、静的な PrintWriter を使用して com.android.util に LoggingClass を実装するだけで失敗しました。
static {
try {
writer = new PrintWriter("data/secu.log");
} catch (FileNotFoundException e) {
Log.e(TAG, "Exception initializing SecuLog.", e);
}
}
Android は複数の dalvik-VM を実行するように設計されており、それらすべてが特定のファイルにアクセスしようとするため、これは機能しませんでした。したがって、ある種のノンブロッキング ファイル I/O が必要です。
logcat 出力を明示的にリダイレクトする必要なく、Android からロギング メカニズムを再利用する方法はありますか?
他のすべてのプロセスから呼び出すことができる単純なファイル ロギング メカニズムを他にどのように実現できますか? ロギングサービスを実装する必要がありますか? このサービスはバインドされたサービスまたは開始されたサービスである必要がありますか? AIDLを使用する必要がありますか?