我计划在 Android 中为与安全相关的消息实现一个日志记录机制。我希望能够在像Log这样的 Android 源代码中使用它类这样的 Android 源代码中使用它,例如SecuLog.log(String msg);
它应在以下方面与普通日志不同
- 没有 DEBUG、INFO 等级别...
- 输出应直接进入设备上的文件。例如,一定不需要重定向 Logcat 输出。
由于多个进程应该能够记录与安全相关的消息,因此我在 com.android.util 中使用静态 PrintWriter 实现 LoggingClass 失败了。
static {
try {
writer = new PrintWriter("data/secu.log");
} catch (FileNotFoundException e) {
Log.e(TAG, "Exception initializing SecuLog.", e);
}
}
这不起作用,因为 Android 旨在运行多个 dalvik-VM,它们都试图访问给定的文件。所以我需要某种非阻塞文件 I/O。
有没有一种方法可以重用 Android 的任何日志记录机制而无需显式重定向 logcat 输出?
我还能如何实现一个简单的文件日志记录机制,可以从其他所有进程调用?我应该实施日志服务吗?此服务必须是绑定服务还是已启动服务?我必须使用AIDL吗?