为什么Log.d()消息显示在设备上时不应该?

时间:2012-04-05 09:37:00

标签: android logcat android-logcat

Android文档表明:

  

详细程度的顺序,从最少到最多,是ERROR,WARN,INFO,DEBUG,VERBOSE。除了在开发期间,不应该将详细编译到应用程序中。调试日志在运行时编译但被剥离。始终保留错误,警告和信息日志。

但是尝试做一个Log.d(),你会发现它实际上仍在真实设备上录制到Logcat。

有谁知道为什么?或者如何禁用它?

谢谢!

4 个答案:

答案 0 :(得分:6)

您所看到的是预期的行为。如果您使用logcat并连接设备,则始终会记录并显示Log.d。因此,如果您不想在生产应用程序中使用调试日志,请将其关闭。事实上,android sdk建议你这样做。这个SO答案也可能对你有所帮助。 Should I comment my log calls when creating my final package?

Andriod sdk说

  

关闭日志记录和调试

     

确保停用日志记录并禁用调试选项   在构建应用程序以进行发布之前。你可以停用   通过删除源文件中对Log方法的调用来进行日志记录。您可以   通过从中删除android:debuggable属性来禁用调试   清单文件中的标记,或通过设置   在清单文件中android:debuggable属性为false。也,   删除在您的。中创建的任何日志文件或静态测试文件   项目

     

此外,您应该删除添加到您的所有调试跟踪调用   代码,例如startMethodTracing()和stopMethodTracing()方法   调用

Source

答案 1 :(得分:0)

您应该在自己的类中封装日志记录,并在需要时启用/禁用特殊类型的日志。

答案 2 :(得分:-1)

如果在开发中编译了详细信息,那么如果调试日志没有,那将会很有趣。请签署您的应用程序并尝试一下,我认为调试消息丢失了。

答案 3 :(得分:-1)

当您插入设备时,它会激活调试模式。如果应用程序在拔出设备的情况下运行,我认为它没有做同样的事情,尽管你无法检查......