自学鸿蒙应用开发(19)- 输出日志

2021-01-28 10:40:07 浏览数 (1)

本文介绍在鸿蒙应用开发过程中日志的使用方法。

日志输出代码

开发者可以在Java代码中使用日志输出必要的信息。例如为了监视Slice的生成和销毁,我们增加如代码中所示的日志输出代码:

代码语言:javascript复制
package com.example.helloharmony.slice;

import com.example.helloharmony.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;

public class MainAbilitySlice extends AbilitySlice {
    static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0x12345, "MainAbilitySlice");
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //组件画面迁移按钮
        Button component_button = (Button) findComponentById(ResourceTable.Id_component_view);
        component_button.setClickedListener(listener -> present(new ComponentAbilitySlice(), new Intent()));
        //列表画面迁移按钮
        Button list_button = (Button) findComponentById(ResourceTable.Id_list_view);
        list_button.setClickedListener(listener -> present(new ListAbilitySlice(), new Intent()));
        //标签页画面迁移按钮
        Button tab_button = (Button) findComponentById(ResourceTable.Id_tab_view);
        tab_button.setClickedListener(listener -> present(new TablistAbilitySlice(), new Intent()));
        // 打印一条日志
        HiLog.info(label, "MainAbilitySlice.onStart!");
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
    @Override
    public void onStop() {
        super.onStop();
        // 打印一条日志
        HiLog.info(label, "MainAbilitySlice.onStop!");
    }
}

第11行用来定义日志输出过程中用来表明日志来源的标签对象,它的三个参数分别是type、domain和tag。HiLog中当前只提供了一种日志类型,即应用日志类型LOG_APP;而domain用于指定输出日志所对应的以后业务领域,取值范围为0x0~0xFFFFF,开发者可以根据需要进行自定义;tag用于指定日志标识,可以为任意字符串,鸿蒙系统建议标识调用所在的类或者业务行为。开发者可以根据自定义参数domain和tag来进行日志的筛选和查找。

鸿蒙系统中一共支持五种级别的日志,分别是DEBUG、INFO、WARN、ERROR和FATAL,对于不同级别的日志,系统提供了不同的方法。例如INFO对应的方法就是info。

代码中第26行和第40行分别在onStart和onStop方法中输出了调试信息。用相同的方法我们可以为所有的Slice增加日志输出代码之后执行代码,日志窗口的输出如下:

DevEco Studio提供了HiLog窗口查看日志信息,开发者可通过设置设备、进程、日志级别和搜索关键词来筛选日志信息。搜索功能支持使用正则表达式,开发者可通过搜索自定义的业务领域值和TAG来筛选日志信息。

如上例所示,根据实际情况选择了设备和进程后,搜索业务领域值“12345”进行筛选,得到对应的日志信息。

参考文档

日志管理

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/hilog-overview-0000001061752577

新书介绍

《实战Python设计模式》是作者最近出版的新书,拜托多多关注!

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

0 人点赞