日志功能

Android 中使用日志功能

一、Android 日志工具类:Log

Android SDK 提供了专门的日志工具类 android.util.Log,它提供了 5 个级别的日志方法,按优先级从低到高排列:

方法级别说明
Log.v()Verbose最低级别,用于输出最琐碎的日志信息
Log.d()Debug调试信息,开发时最常用
Log.i()Info一般提示性信息
Log.w()Warn警告信息,可能存在潜在风险
Log.e()Error错误信息,比如进入 catch 异常

二、基本用法

在 MainActivity 的 onCreate() 方法中添加日志:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    // 输出 Info 级别的日志
    Log.i("foxdevelop", "xxxxxx");
}Code language: JavaScript (javascript)

方法参数说明:

参数说明
第一个参数(tag)日志标签,通常用简短字符串标识来源,方便过滤
第二个参数(msg)日志内容,即你想输出的信息

运行项目后,打开 Logcat​ 窗口即可看到输出的日志。


三、Logcat 窗口使用技巧

功能操作
查看日志运行应用后,底部 Logcat 面板自动显示
关键字搜索在 Logcat 搜索框输入关键字(如 foxdevelop)过滤
按级别过滤点击下拉菜单选择 Show only selected application / No Filters / Edit Filter Configuration
按 tag 过滤在搜索框输入 tag:foxdevelop

四、为什么不建议用 System.out.println()

对比项System.out.printlnLog
可控性 不可控可通过级别和过滤器控制
时间信息无时间戳每条日志带精确时间
过滤器无法按 tag 过滤支持 tag、级别、进程等多维过滤
日志级别无级别区分5 个级别,方便定位问题
生产环境无法关闭可配置关闭或仅输出特定级别
// 不推荐
System.out.println("xxxxxxx");

// 推荐
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

五、Android Studio 日志快捷键

AS 提供了强大的 Live Template​ 快捷键,输入后按 Tab 自动补全:

快捷键(输入后按 Tab)生成代码说明
logdLog.d(TAG, "onCreate: ");生成 Debug 日志
logiLog.i(TAG, "onCreate: ");生成 Info 日志
logwLog.w(TAG, "onCreate: ");生成 Warn 日志
logeLog.e(TAG, "onCreate: ");生成 Error 日志
logvLog.v(TAG, "onCreate: ");生成 Verbose 日志
logtprivate static final String TAG = "类名";在类体中使用,自动生成当前类名作为 TAG

六、完整示例

public class MainActivity extends AppCompatActivity {

    // 在类体中使用 logt + Tab 自动生成
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 使用 TAG 常量输出日志
        Log.i(TAG, "foxdevelop");
        Log.e(TAG, "这里发生异常了");

        // 不推荐
        System.out.println("xxxxxxx");
    }
}Code language: PHP (php)

运行后 Logcat 输出效果:

I/MainActivity: foxdevelop
E/MainActivity: 这里发生异常了Code language: HTTP (http)

Previous:
Next:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注