Log.i()的用法

本文介绍了Android开发中用于调试的日志工具Android Log类,特别是Log.i()方法的使用。Log.i()用于输出绿色的提示性信息,介于Debug和Warning之间。Log类还包括其他级别如Verbose、Debug、Warning和Error,不同级别对应不同的颜色和输出信息。通过一个简单的LogDemo实例,展示了如何在代码中添加Log.i()等方法,并在LogCat中查看输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。

android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSEDEBUG,INFO, WARN,ERROR。

1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");

2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.

3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息

4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。

5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。

注意:不同的打印方法在使用时都是某个方法带上(String tag, String msg)参数,tag表示的是打印信息的标签,msg表示的是需要打印的信息。

下面是我做的一个简单的LogDemo(Step By Step):

Step 1:准备工作(打开LogCat视窗).

 启动Eclipse,在Window->Show View会出来一个对话框,当我们点击Ok按钮时,会在控制台窗口出现LogCat视窗.如下图:

Step 2:新建一个Android工程,命名为LogDemo.

Step 3:设计UI界面,我们在这里就加了一个Button按钮(点击按钮出现Log日志信息).

Main.xml代码如下:

 

[xhtml]  view plain copy
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="@string/hello"  
  11.     />  
  12. <Button  
  13.  android:id="@+id/bt"  
  14.  android:layout_width="wrap_content"  
  15.  android:layout_height="wrap_content"  
  16.  android:text="Presse Me Look Log"  
  17. />  
  18. </LinearLayout>  

 

Step 4:设计主类LogDemo.java,代码如下:

 

[java]  view plain copy
 
  1. public class LogDemo extends Activity {  
  2.     
  3.  private static final String ACTIVITY_TAG="LogDemo";  
  4.  private Button bt;  
  5.     public void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.main);  
  8.         //通过findViewById找到Button资源  
  9.         bt = (Button)findViewById(R.id.bt);  
  10.         //增加事件响应  
  11.         bt.setOnClickListener(new Button.OnClickListener(){  
  12.     @Override  
  13.    public void onClick(View v) {  
  14.     Log.v(LogDemo.ACTIVITY_TAG, "This is Verbose.");  
  15.     Log.d(LogDemo.ACTIVITY_TAG, "This is Debug.");  
  16.     Log.i(LogDemo.ACTIVITY_TAG, "This is Information");  
  17.     Log.w(LogDemo.ACTIVITY_TAG, "This is Warnning.");  
  18.     Log.e(LogDemo.ACTIVITY_TAG, "This is Error.");  
  19.    }  
  20.            
  21.         });  
  22.     }  
  23.           
  24. }  

 

Step 5:运行LogDemo工程,效果如下:

当我们点击按钮时,会触发事件,在Logcat视窗下有如下效果:

转载于:https://www.cnblogs.com/wenfei123chai/p/4255902.html

<think>首先,用户的问题是:“我想了解log.d和log.i在日志记录中的区别请问log.d和 log.i的区别是什么”。这基于Android的日志系统。从系统级指令:-所有行内数学表达式必须使用$...$格式。-独立公式必须使用$$...$$格式并单独成段。 -LaTeX语法正确。-使用中文回答。-生成相关问题。 -回答中引用的段落末尾自然地添加引用标识。-回答结构清晰,帮助用户逐步解决问题。 参考站内引用:- [^1]:描述了Log.v,Log.d, Log.i,Log.w, Log.e的用法。- [^2]:提到这些方法对应VERBOSE,DEBUG,INFO,WARN, ERROR。 -[^3]:详细解释了每个级别的颜色和用途:Log.v (VERBOSE,黑色),Log.d(DEBUG,蓝色),Log.i(INFO,绿色),Log.w(WARN,橙色), Log.e (ERROR,红色)。 -[^4]:展示了一个Android工程示例,但这不是核心内容。 用户关注的是log.d和log.i的区别。所以,我需要提取关键信息。 关键点: -Log.d:用于调试信息,输出蓝色,显示调试级别的日志。 -Log.i:用于一般信息,输出绿色,显示信息级别的日志。-区别:日志级别不同。DEBUG级别更详细,用于调试;INFO级别用于常规信息,如操作成功等。在日志过滤中,INFO级别会显示INFO、WARN和ERROR,但不显示DEBUG和VERBOSE。 从引用[^3]:- Log.d:输出蓝色,仅输出debug调试,会输出上层信息。 -Log.i:输出绿色,一般提示性消息,不会输出Log.v和Log.d的信息,但会显示i、w和e的信息。 所以,区别在于:1. **目的**:Log.d用于开发调试阶段,记录详细信息;Log.i用于记录应用程序的正常操作信息。2.**日志级别**:DEBUG级别低于INFO级别。在日志系统中,设置日志级别时,如果设置为INFO,则DEBUG日志不会显示。3.**输出**:在Android的Logcat中,颜色不同:DEBUG为蓝色,INFO为绿色。4.**使用场景**:Log.d在需要详细调试信息时使用;Log.i在记录重要事件或状态时使用。回答结构: -先简要介绍日志级别。 -然后详细解释Log.d和Log.i。-最后总结区别。-结束时生成相关问题。使用中文回答。 添加引用:在回答中引用段落末尾添加引用标识,如[^1]。生成相关问题:在回答后添加“§§相关问题§§”部分,列出相关问题。 确保回答真实可靠:基于提供的引用。最终回答大纲: 1. **介绍**:解释Android日志级别。 2. **Log.d详解**:用途、级别、输出。 3. **Log.i详解**:用途、级别、输出。 4. **区别总结**:对比目的、级别、可见性、使用场景。 5. **相关问题**:生成几个相关问题。数学表达式:用户问题不涉及数学,所以可能不需要。但如果提到某些概念,确保使用$...$。这里可能不适用。现在,撰写回答。</think>### Log.d 和 Log.i 在 Android 日志记录中的区别 在 Android 开发中,日志记录是调试和监控应用的重要工具。`Log.d()` 和 `Log.i()` 是 `android.util.Log` 类提供的两个方法,分别对应不同的日志级别。它们的主要区别在于用途、日志级别、输出方式和使用场景。下面我将逐步解释这些区别,确保回答基于可靠的引用信息。 #### 1. **日志级别概述** - Android 日志系统定义了多个级别:`VERBOSE` (Log.v)、`DEBUG` (Log.d)、`INFO` (Log.i)、`WARN` (Log.w) 和 `ERROR` (Log.e)。这些级别从低到高排列,低级别日志包含更详细的调试信息,高级别日志则关注关键事件或错误[^2]。 - 在日志过滤时,如果设置级别为 `INFO`,则只显示 `INFO`、`WARN` 和 `ERROR` 日志,而 `DEBUG` 和 `VERBOSE` 日志会被隐藏[^3]。 #### 2. **Log.d() 详解** - **用途**:`Log.d()` 代表 `DEBUG` 级别,主要用于开发调试阶段。它记录详细的调试信息,如变量值、方法调用路径或临时状态,帮助开发者追踪代码执行流程。 - **日志级别**:属于较低级别(优先级低于 `INFO`)。在标准日志级别中,`DEBUG` 日志在正式发布版本中通常会被禁用,以减少日志量。 - **输出方式**:在 Android Studio 的 Logcat 工具中,`Log.d()` 输出的日志以蓝色显示。例如: ```java Log.d("TAG", "调试信息:当前计数器值 = " + count); // 输出蓝色日志 ``` 这会显示详细的调试上下文,包括上层调用信息[^3]。 - **使用场景**:适合在开发过程中临时添加,用于排查问题,例如在循环或条件分支中记录中间值。 #### 3. **Log.i() 详解** - **用途**:`Log.i()` 代表 `INFO` 级别,用于记录一般性的操作信息或应用状态。它表示应用程序正常运行时的关键事件,如用户操作成功、服务启动或配置加载。 - **日志级别**:属于较高级别(优先级高于 `DEBUG`)。`INFO` 日志在生产和调试环境中都常被保留,因为它提供高价值的运行洞察。 - **输出方式**:在 Logcat 中,`Log.i()` 输出的日志以绿色显示。例如: ```java Log.i("TAG", "信息:用户登录成功"); // 输出绿色日志 ``` 它不会显示 `DEBUG` 或 `VERBOSE` 日志的内容,但会包含 `WARN` 和 `ERROR` 信息[^3]。 - **使用场景**:适合记录重要的业务逻辑事件,如用户登录、数据同步完成或 API 调用结果。 #### 4. **主要区别总结** | 方面 | Log.d (DEBUG) | Log.i (INFO) | |--------------|----------------------------------------|----------------------------------------| | **目的** | 用于详细调试,辅助开发者排查问题 | 用于记录正常操作信息,提供运行状态洞察 | | **日志级别** | 较低级别(优先级低) | 较高级别(优先级高) | | **输出可见性** | 在 Logcat 中显示为蓝色;如果日志级别设置为 `INFO` 或更高,则不会显示 | 在 Logcat 中显示为绿色;始终显示在 `INFO` 及以上级别 | | **使用场景** | 开发阶段临时调试,如变量跟踪 | 正式环境中的关键事件记录,如用户操作 | | **颜色标识** | 蓝色(便于在 Logcat 中过滤)[^3] | 绿色(表示信息性内容)[^3] | 简单来说:`Log.d()` 更适合开发调试,提供底层细节;而 `Log.i()` 用于记录应用正常运行信息,优先级更高且更易在日志中保留。在实际开发中,建议根据需求选择合适的级别——调试时用 `Log.d()`,发布时多用 `Log.i()` 以避免日志泛滥[^1][^3]。 #### 5. **最佳实践建议** - **避免滥用**:在正式版本中,尽量减少 `Log.d()` 的使用,因为它可能暴露敏感信息或增加日志负担。可以通过 ProGuard 等工具在构建时移除 `DEBUG` 日志。 - **性能影响**:日志操作本身有开销,尤其是在循环中频繁调用 `Log.d()` 可能影响性能。推荐仅在必要时使用。 - **统一标签**:为日志设置一致的标签(如 `"MyApp"`),便于在 Logcat 中过滤和管理[^4]。 通过合理使用 `Log.d()` 和 `Log.i()`,您可以更高效地监控和调试 Android 应用。如果需要代码示例或进一步优化,请参考 Android 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值