在Android中为设备上的日志记录设置过滤器

问题描述:

当您在Android中记录某些内容时,它会将一行放入固定大小的缓冲区中。如果您获得的消息多于缓冲区中的消息,则会丢弃旧消息。您总是会看到最新日志消息的固定大小窗口。在Android中为设备上的日志记录设置过滤器

运行logcat会给你这个缓冲区的当前内容,如果运行,它会显示你记录的新事件。您可以过滤logcat的输出,以便例如只看到属于某个标记的消息。

是否有任何便利的设施,只有具有特定标签的事件才放置在固定大小的缓冲区中?

我想基本上可以告诉Android,我只希望Log类用我的标记记录事件。我不想让它记录所有事件并在稍后处理它们,因为我的事件很少发生,而其他事件非常常见,所以它们会导致我的事件从缓冲区中被驱逐出去。

我更喜欢一个不涉及离开设备插件(即,让logcat运行并将过滤后的输出重定向到文件)的解决方案。一个可行的解决方案是编写我自己的设备上的日志记录系统(写入我创建的文件),但是如果我可以从Android日志记录中免费获得这个,我宁愿这样做。

我环顾四周,到目前为止还没有取得很多成功。

+1

我想你将不得不创建自己的日志记录系统,如果你的目标是禁用-every-消息,除了你自己的。 – Jave 2013-02-19 21:53:49

+0

@Jave也许可以让日志系统为我的标签定义一个新的循环缓冲区,比如事件或者广播缓冲区。我真的不知道。 – Patrick87 2013-02-19 21:58:16

是否有任何便利的设施,只有具有特定标签的事件才放置在固定大小的缓冲区中?

在根设备上,虽然我不知道其中之一。

在无根设备上,您无权影响其他应用程序的日志记录或操作系统自己的日志记录。

+0

感谢您的快速响应。这个怎么回事:记录机制能否自动将带有我的标签的事件放入自己的循环缓冲区中?我知道设备上有不同的缓冲区,但我不知道这些缓冲区是静态的还是可以定义的。 – Patrick87 2013-02-19 21:57:27

+0

@ Patrick87:“那又怎么样:日志记录机制能否自动将带有我的标记的事件放入自己的循环缓冲区?” - 不,你可以使用DropBoxManager作为那种环形缓冲区。不过,我不知道查看记录的内容有多简单。 – CommonsWare 2013-02-19 21:59:40