【问题标题】:How to intercept the logs Log.d/w/e via Listener如何通过 Listener 拦截日志 Log.d/w/e
【发布时间】:2016-05-11 17:11:06
【问题描述】:

在 stackoverflow 和谷歌搜索了很多关于如何拦截我的应用程序中的日志之后。我找到的解决方案是在运行时执行命令logcat -v time,但此解决方案打印所有日志,我只想拦截对我的应用程序中的 Log.d/w/e 方法的所有调用。

问题

是否有一些解决方案,例如将侦听器附加到一个类 向我报告所有日志?

例如

获取 Logger.getGlobal() 并将一些处理程序或侦听器添加到 用于接收所有日志的主记录器。

任何有关这方面的信息都会很棒!

【问题讨论】:

标签: java android logcat android-logcat android-log


【解决方案1】:

我找到的解决方案是执行命令 logcat -v time

这没有记录,也不受支持。

是否有一些解决方案,例如将侦听器附加到一个向我报告所有日志的类?

仅当您使用自己的日志记录包装器时。有various libraries 可用,可为您提供更灵活的日志记录选项。

【讨论】:

  • 可以执行"Runtime.getRuntime().exec("logcat -v time");"例如。我的问题是我不能使用日志包装器,因为应用程序与 Log.d/e/w 完全耦合。谢谢!!
  • 好吧,如果你在 linux 上,你可以对所有文件进行查找/替换,然后指向你的包装器(但不确定 Windows 变体),例如:grep -rl 'android.utils.Logger' ./ | xargs sed -i 's/android.utils.Logger/com.myapp.utils.Logger/g' 将 com.myapp.utils.Logger 替换为 Logger 包装类,这只是模仿对 Log.d/ 的相同调用e/w 并且可以触发一些回调
猜你喜欢
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
相关资源
最近更新 更多