使用Android Logger的最佳实践是什么

使用Android Logger的最佳实践是什么,android,file,logging,Android,File,Logging,我是Android新手。请帮助我了解使用Android Logger的最佳实践。我是否需要在android中的某个地方保存一个文件,并继续将日志写入其中,或者不需要将日志写入文件。最佳做法是什么 我的真正意图是这样。 一旦我们上线,如果我们的客户回来告诉我们,他们的android系统发生了故障或无法正常工作,那么我们该如何调试? 在web应用程序中,我会要求服务器管理员提供日志文件。当没有服务器错误,但手机出现故障时,我们如何处理android应用程序。有没有办法从电话中获取日志 谢谢 Ravi

我是Android新手。请帮助我了解使用Android Logger的最佳实践。我是否需要在android中的某个地方保存一个文件,并继续将日志写入其中,或者不需要将日志写入文件。最佳做法是什么

我的真正意图是这样。 一旦我们上线,如果我们的客户回来告诉我们,他们的android系统发生了故障或无法正常工作,那么我们该如何调试? 在web应用程序中,我会要求服务器管理员提供日志文件。当没有服务器错误,但手机出现故障时,我们如何处理android应用程序。有没有办法从电话中获取日志

谢谢
Ravi

如果您计划发布/分发您的应用程序,则可以将日志存储在文件中,但根据我的意见,最好不是更好的解决方案。您可以从应用程序配置在线工具

捕获所有服务器异常并发送有关该异常的所有详细信息。并在应用程序中配置任意一个日志记录工具


您可以看到log4j或ACRA或

这取决于您需要什么,您需要记录以半调试您的应用程序,而不是方便地使用内置日志功能。通过Logcat,您可以轻松查看日志

如果您希望在发布应用程序时记录多个设备。使用专用的日志框架(例如Log4J)并将其上载到服务器。

Android记录器(
Android.util.Log
)的输出将进入一个您不必维护的控制台。实际上,您不必管理文件,只需管理输出

您有5类日志:

  • 详细:使用
    Log.v(标记、消息)
  • 调试:使用
    Log.d(标记、消息)
  • 信息:使用
    Log.i(标签、消息)
  • 警告:使用
    Log.w(标签、消息)
  • 错误:使用
    Log.e(标记、消息)
例如:

Log.e("MyActivity", "Oops... caught this exception: " + exception.getMessage());
LogCat控制台(这是它的名称)允许您按日志级别进行过滤。这是一个细胞过滤。例如,如果按“警告”筛选,您将看到所有警告和错误,但不会看到详细的调试和信息消息

您将在中找到更多详细信息

一个提示(如果您使用的是Eclipse,并且与问题没有直接关系),Eclipse在查看日志时非常不可靠。显然没有任何原因,它会时不时地完全停止显示日志。一个简单的解决方案是使用命令行工具查看日志。在Linux上,您可以执行以下操作:

$adb logcat MyTag:D *:S
如果要将日志捕获到文件中,可以执行以下操作:

$adb logcat -d > logcat.txt.
希望这有帮助

我的真正意图是这样。 一旦我们上线,如果我们的客户回来告诉我们,他们的android系统发生了故障或无法正常工作,那么我们该如何调试?
在web应用程序中,我会要求服务器管理员提供日志文件。当没有服务器错误,但手机出现故障时,我们如何处理android应用程序。是否有办法从手机获取日志。

如果您使用文件存储日志,那么如果文件变大,可能会导致性能问题。所以你需要及时清理文件。 对于我来说,最好的解决方案还是使用。 我们使用fabric.io。
您还可以为默认日志类使用一些包装器。举个例子

你试过谷歌搜索吗?需要注意的一件重要事情是,android的日志类写入共享日志。在调试过程中尽可能使用它,但在发布版本中,不要打印出任何非绝对必要的内容-这只会使我们其他人在发送垃圾邮件时更难使用它。确保它是可行的,我们已经做了50年了。@Gabeschen如果你为每一部手机存储一个文件,那么你如何收集所有手机的所有报告?你告诉他们通过邮件发送?然后你继续增加文件号?我认为更好的方法是使用市场上提供的此类在线工具,它们的存在也是出于同样的原因,并且不消耗移动空间,也不需要额外的逻辑来编写文件。如果有用户有特定问题,您可以让他们向您发送日志。你不需要也不想要大量的日志。即使尝试这样做,也只会产生大量你永远看不到的数据——因为有太多的数据你在大海捞针。最多可能上传崩溃是有意义的——但即使你有任何QA,也不会找到太多。这取决于我会说的要求。呃,我不会这么说。记录每个人所做的一切,并上传这些数据,只有在您真正设法使用这些数据来改进程序时才有用。如果你不能,它实际上会使你的程序更加脆弱。我不会说没有人能够做到这一点,但我会说,能够做到这一点的地方是少数。这忽视了事情的隐私方面——这简直令人毛骨悚然。我不会使用这样的应用程序。我的真正意图是这样。一旦我们上线,如果我们的客户回来告诉我们,他们的android系统发生了故障或无法正常工作,那么我们该如何调试?在web应用程序中,我会要求服务器管理员提供日志文件。当没有服务器错误,但手机出现故障时,我们如何处理android应用程序。我的回答是:使用专用的日志框架,比如Log4J,并将其上传到服务器。
$adb logcat -d > logcat.txt.