gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-28 23:35:40 27 4
gpt4 key购买 nike

Android Open Source Project's code style ,它指出我们不应该使用 System.out.println() 但我不明白为什么。谁能解释一下?我应该使用什么来跟踪我的应用程序的日志?

这是供引用的行:

System.out.println() (or printf() for native code) should never be used. System.out and System.err get redirected to /dev/null, so your print statements will have no visible effects. However, all the string building that happens for these calls still gets executed.

最佳答案

您应该使用 android.util.Log类。

下面是对 Log 类的作用的描述:

API for sending log output.

Generally, you should use the Log.v(), Log.d(), Log.i(), Log.w(), and Log.e() methods to write logs. You can then view the logs in logcat.

The order in terms of verbosity, from least to most is ERROR, WARN, INFO, DEBUG, VERBOSE. Verbose should never be compiled into an application except during development. Debug logs are compiled in but stripped at runtime. Error, warning and info logs are always kept.

这些是 Log 类的可用方法:

  1. Log.d() - 发送 DEBUG记录消息。
  2. Log.e() - 发送 ERROR记录消息。
  3. Log.i() - 发送 INFO记录消息。
  4. Log.v() - 发送 VERBOSE记录消息。
  5. Log.w() - 发送 WARN记录消息。
  6. Log.wtf() - 多么可怕的失败:报告一个不应该发生的异常。

上述方法(Log.wLog.wtf 除外,它们有 3 种可能的参数模式)需要以下参数:

  1. 字符串标签,字符串消息:

    tag: Used to identify the source of a log message. This value may be null.

    msg: The message you would like logged. This value may be null.

  2. String tag, String msg, Throwable tr - 类似于第一个模式,但允许指定异常。如果您想在日志输出中记录异常,则应使用此模式。

  3. (For Log.w and Log.wtf) String tag, Throwable tr 类似于第三种模式,但确实不允许指定消息。请注意,您仍然可以传递消息,但它应该在第二个参数排列中。


EDIT:直接回答您的问题:System.outSystem.errprintln() > 仍会在 logcat 中显示,但有限制。

  • 您不能使用 System.out 记录 VERBOSEERRORDEBUG System.err.
  • 你不能定义你自己的标签,它会显示 System.errSystem.out 你的文本。例如:

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

关于android - 为什么我不应该在 android 中使用 System.out.println(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18393888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com