有没有办法取代标准的Android登录?

时间:2011-07-18 16:44:40

标签: android logging

有没有办法以某种方式拦截对标准Log in android的调用并执行其他一些操作?

在桌面Java中,人们通常会得到一些记录器,因此有办法安装不同的日志处理程序/实现。但是,Android似乎有一个静态调用Log,我找不到任何有关替换默认行为的信息。

我意识到我可以通过ADB监控设备日志,但我想在选择加入的设备上运行应用程序时有不同的行为(例如,在程序启动时执行某条指令)。

4 个答案:

答案 0 :(得分:4)

正如AedonEtLIRA指出Log是最终的,所以你需要滚动/借用一个新的。我一直在使用Prasanta Paul的“MLog”:http://prasanta-paul.blogspot.com/2010/07/custom-logger-for-android.html

可以轻松地将日志保存到文本文件和/或完全禁用日志记录。 如果它还没有满足您的需求,那么它就是管理日志记录的良好基础。

答案 1 :(得分:3)

我认为您最好的解决方案是将您应用中的所有Log来电替换为您自己的班级MyLog,然后如果他们不选择加入,请致电Log,如果他们选择加入,请调用您的特殊日志记录功能。

替换所有日志调用应该不难,只需查找和替换。

答案 2 :(得分:3)

除了@Darrell提​​出的MLog之外,Android还有其他几个日志框架,包括:

在这三者中,logback(下一代log4j)似乎是最强大的,拥有最丰富的API(和批次的文档),而microlog是最紧凑的(但是限制在功能...但也许它可以满足您的所有需求)。这三个都支持SLF4J日志记录,因此您可以轻松地将microlog替换为logback,log4j,jul或更新的框架。

与MLog一样,这些框架需要将调用替换为android.os.util.Log(它不会“拦截”您之后的调用)。

答案 3 :(得分:2)

因为Log是最终的,我认为你必须编写自己的日志记录系统并实现它,如果你想改变任何东西。