为什么我不应该在android中使用System.out.println()

Ngu*_*inh 19 logging android

在这种代码风格中,他们说我们不应该使用System.out.println(),但我不明白他们的想法.任何人可以解释一下吗?我应该使用什么来跟踪我的应用程序的日志?

不应使用System.out.println()(或本机代码的printf()).System.out和System.err被重定向到/ dev/null,因此您的print语句将没有可见效果.但是,为这些调用发生的所有字符串构建仍然会被执行.

Gle*_*enn 29

这也是我的问题.您应该使用Log的类方法.

作为android开发人员,这些是Logging实用程序常用的方法

  1. Log.d() - 调试
  2. Log.e() - 错误
  3. Log.i() - 信息
  4. Log.w() - 警告
  5. Log.v() - 详细
  6. Log.wtf()- 多么可怕的失败:报告应该never发生的异常.

以上方法都有两个参数:

  1. String , String - 这是一个基本参数,它是TAG和Message.
  2. String, String, Throwable - 第一个有相似之处.但是,如果要在logcat中记录Exception或任何Throwables,除了调用printStackTrace()使用此.

编辑:直接回答你的问题.println()System.outSystem.err仍然会显示在logcat中,但受到限制.

  • 您无法登录VERBOSE,ERRORDEBUG使用System.outSystem.err.
  • 您无法定义自己的TAG,它将显示System.errSystem.out与您的文本.作为对等

    • System.out.println("Hello!") 相当于 Log.i("System.out","Hello!")
    • System.err.println("Hello!") 相当于 Log.w("System.err","Hello!")

  • Log.wtf()显然意味着"多么可怕的失败"(http://developer.android.com/reference/android/util/Log.html#wtf%28java.lang.String,%20java.lang.Throwable%29 ) (6认同)