当前位置: 首页 > news >正文

鸿蒙开发系统基础能力:【@ohos.hilog (日志打印)】

日志打印

hilog日志系统,使应用/服务可以按照指定级别、标识和格式字符串输出日志内容,帮助开发者了解应用/服务的运行状态,更好地调试程序。

说明:  本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import hilog from '@ohos.hilog';

hilog.isLoggable

isLoggable(domain: number, tag: string, level: LogLevel) : boolean

在打印日志前调用该接口,用于检查指定领域标识、日志标识和级别的日志是否可以打印。

系统能力:  SystemCapability.HiviewDFX.HiLog

参数:

参数名类型必填说明
domainnumber日志对应的领域标识,范围是0x0~0xFFFF,开发者可根据需要自定义。
tagstring指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。
level[LogLevel]日志级别。

返回值:

类型说明
boolean如果返回true,则该领域标识、日志标识和级别的日志可以打印,否则不能打印。

示例:

hilog.isLoggable(0x0001, "testTag", hilog.LogLevel.INFO);

LogLevel

日志级别。

系统能力:  SystemCapability.HiviewDFX.HiLog

名称默认值说明
DEBUG3详细的流程记录,通过该级别的日志可以更详细地分析业务流程和定位分析问题。
INFO4用于记录业务关键流程节点,可以还原业务的主要运行过程; 用于记录可预料的非正常情况信息,如无网络信号、登录失败等。 这些日志都应该由该业务内处于支配地位的模块来记录,避免在多个被调用的模块或低级函数中重复记录。
WARN5用于记录较为严重的非预期情况,但是对用户影响不大,应用可以自动恢复或通过简单的操作就可以恢复的问题。
ERROR6应用发生了错误,该错误会影响功能的正常运行或用户的正常使用,可以恢复但恢复代价较高,如重置数据等。
FATAL7重大致命异常,表明应用即将崩溃,故障无法恢复。

hilog.debug

debug(domain: number, tag: string, format: string, …args: any[]) : void

打印DEBUG级别的日志。

DEBUG级别的日志在正式发布版本中默认不被打印,只有在调试版本或打开调试开关的情况下才会打印。

系统能力:  SystemCapability.HiviewDFX.HiLog

参数:

参数名类型必填说明
domainnumber日志对应的领域标识,范围是0x0~0xFFFF,开发者可根据需要自定义。
tagstring指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。
formatstring格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。 隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以过滤回显。
argsany[]与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。

示例:

输出一条DEBUG信息,格式字符串为"%{public}s World %{private}d"。其中变参%{public}s为明文显示的字符串;%{private}d为隐私的整型数。

hilog.debug(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3);

字符串"hello"填入%{public}s,整型数3填入%{private}d,输出日志:

08-05 12:21:47.579  2695-2703/com.example.myapplication D 00001/testTag: hello World <private>

hilog.info

info(domain: number, tag: string, format: string, …args: any[]) : void

打印INFO级别的日志。

系统能力:  SystemCapability.HiviewDFX.HiLog

参数:

参数名类型必填说明
domainnumber日志对应的领域标识,范围是0x0~0xFFFF,开发者可根据需要自定义。
tagstring指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。
formatstring格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。 隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以过滤回显。
argsany[]与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。

示例:

输出一条INFO信息,格式字符串为"%{public}s World %{private}d"。其中变参%{public}s为明文显示的字符串;%{private}d为隐私的整型数。

hilog.info(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3);

字符串"hello"填入%{public}s,整型数3填入%{private}d,输出日志:

08-05 12:21:47.579  2695-2703/com.example.myapplication I 00001/testTag: hello World <private>

hilog.warn

warn(domain: number, tag: string, format: string, …args: any[]) : void

打印WARN级别的日志。

系统能力:  SystemCapability.HiviewDFX.HiLog

参数:

参数名类型必填说明
domainnumber日志对应的领域标识,范围是0x0~0xFFFF,开发者可根据需要自定义。
tagstring指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。
formatstring格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。 隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以过滤回显。
argsany[]与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。

示例:

输出一条WARN信息,格式字符串为"%{public}s World %{private}d"。其中变参%{public}s为明文显示的字符串;%{private}d为隐私的整型数。

hilog.warn(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3);

字符串"hello"填入%{public}s,整型数3填入%{private}d,输出日志:

08-05 12:21:47.579  2695-2703/com.example.myapplication W 00001/testTag: hello World <private>

hilog.error

error(domain: number, tag: string, format: string, …args: any[]) : void

打印ERROR级别的日志。

系统能力:  SystemCapability.HiviewDFX.HiLog

参数:

参数名类型必填说明
domainnumber日志对应的领域标识,范围是0x0~0xFFFF,开发者可根据需要自定义。
tagstring指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。
formatstring格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。 隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以过滤回显。
argsany[]与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。

示例:

输出一条ERROR信息,格式字符串为"%{public}s World %{private}d"。其中变参%{public}s为明文显示的字符串;%{private}d为隐私的整型数。

hilog.error(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3);

字符串"hello"填入%{public}s,整型数3填入%{private}d,输出日志:

08-05 12:21:47.579  2695-2703/com.example.myapplication E 00001/testTag: hello World <private>

hilog.fatal

fatal(domain: number, tag: string, format: string, …args: any[]) : void

打印FATAL级别的日志。

系统能力:  SystemCapability.HiviewDFX.HiLog

参数:

参数名类型必填说明
domainnumber日志对应的领域标识,范围是0x0~0xFFFF,开发者可根据需要自定义。
tagstring指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。
formatstring格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。 隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以过滤回显。
argsany[]与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。

示例:

输出一条FATAL信息,格式字符串为"%{public}s World %{private}d"。其中变参%{public}s为明文显示的字符串;%{private}d为隐私的整型数。

hilog.fatal(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3);

字符串"hello"填入%{public}s,整型数3填入%{private}d,输出日志:

08-05 12:21:47.579  2695-2703/com.example.myapplication F 00001/testTag: hello World <private>

相关文章:

鸿蒙开发系统基础能力:【@ohos.hilog (日志打印)】

日志打印 hilog日志系统&#xff0c;使应用/服务可以按照指定级别、标识和格式字符串输出日志内容&#xff0c;帮助开发者了解应用/服务的运行状态&#xff0c;更好地调试程序。 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用…...

SpringMVC系列十: 中文乱码处理与JSON处理

文章目录 中文乱码处理自定义中文乱码过滤器Spring提供的过滤器处理中文 处理json和HttpMessageConverter<T>处理JSON-ResponseBody处理JSON-RequestBody处理JSON-注意事项和细节HttpMessageConverter<T\>文件下载-ResponseEntity<T\>作业布置 上一讲, 我们学…...

使用MyBatisPlus进行字段的自动填充

使用MyBatisPlus进行字段的自动填充 需求场景 当我们往数据库里面插入一条数据&#xff0c;或者是更新一条数据时&#xff0c;一般都需要标记创建时间create_time和更新时间update_time的值&#xff0c;但是如果我们每张表的每个请求&#xff0c;在执行sql语句的时候我们都手…...

python爬虫之aiohttp多任务异步爬虫

python爬虫之aiohttp多任务异步爬虫 爬取的flash服务如下&#xff1a; from flask import Flask import timeapp Flask(__name__)app.route(/bobo) def index_bobo():time.sleep(2)return Hello boboapp.route(/jay) def index_jay():time.sleep(2)return Hello jayapp.rout…...

1964springboot VUE小程序在线学习管理系统开发mysql数据库uniapp开发java编程计算机网页源码maven项目

一、源码特点 springboot VUE uniapp 小程序 在线学习管理系统是一套完善的完整信息管理类型系统&#xff0c;结合springboot框架uniapp和VUE完成本系统&#xff0c;对理解vue java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;…...

【前端项目笔记】3 用户管理

用户管理相关功能实现 涉及表单、对话框、Ajax数据请求 基本页面 用户列表开发 在router.js中导入Users.vue 解决用户列表小问题 选中&#xff08;激活&#xff09;子菜单后刷新不显示高亮 给二级菜单绑定单击事件&#xff0c;点击链接时把对应的地址保存到sessionSto…...

【文献及模型、制图分享】基于SSP-RCP不同情景的京津冀地区土地覆被变化模拟

公众号新功能 目前公众号新增以下等功能 1、处理GIS出图、Python制图、区位图、土地利用现状图、土地利用动态度和重心迁移图等等 2、核密度分析、网络od分析、地形分析、空间分析等等 3、地理加权回归、地理探测器、生态环境质量指数、地理加权回归模型影响因素分析、计算…...

基于单片机的智能台灯控制系统

摘要&#xff1a; 文章设计一款单片机智能台灯控制系统&#xff0c;实现对台灯的手动和自动控制功能&#xff0c;以 STC89C52 单片机作为多功能智能台灯的主控制器&#xff0c;光电检测模块检测坐姿&#xff0c;红外传感器检测人体&#xff0c;光敏电阻检测光强&#xff0c;同…...

PrestaShop的一些使用介绍

目录 PrestaShop 是一个功能丰富的开源电子商务解决方案。 1. 以下是其基本概念和架构的一些要点&#xff1a; 2. PrestaShop 的模块开发是扩展其功能的重要方式。以下是对 PrestaShop 模块开发的详细介绍&#xff1a; 开发环境准备&#xff1a; 3. PrestaShop 的模块开发允…...

零基础女生如何入门人工智能,从哪里下手?学习时间大概要多久?

作为一个理工科早期毕业生&#xff0c;出于近乎本能的敏感&#xff0c;格外关注全网热议的ChatGPT。 本来国内就业环境就不好&#xff0c;各行各业内卷越来越严重&#xff0c;加上人工智能的异军突起&#xff0c;各行各业势必将迎来科技进步跨时代的巨大冲击&#xff0c;在此情…...

简答分享python学习进修网站

一、网战推荐 CodeCombat 是一款网页编程游戏。这款编程游戏借鉴了游戏很多设计元素&#xff0c;游戏剧情十分丰富。Codecombat能够学习Python多种语言&#xff0c;这些语言能够运用到游戏设计、网页应用、app的开发上。 Checkio 是一个基于浏览器的游戏&#xff0c;你需要使…...

linux高级编程(I/O)

fputc int fputc(int c, FILE *stream); 功能: 向流中写入一个字符 参数: c:要写入的字符 stream:文件流指针 返回值: 成功返回写入的字符ASCII码值 失败返回EOF fgetc int fgetc(FILE *stream); 功能: 从流中读取一个字符 参数: stream:文件流…...

Java面试——认证与授权

X、常见面试题汇总 1、Shiro与SpringSecutity对比 1&#xff09;Shiro的特点&#xff1a; Shiro 是 Apache 下的项目&#xff0c;相对简单、轻巧&#xff0c;更容易上手使用。 Shiro 权限功能基本都能满足&#xff0c;单点登录都可以实现。且不用与任何的框架或者容器绑定, 可…...

【经典算法OJ题讲解】

1.移除元素 经典算法OJ题1&#xff1a; 移除元素 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/remove-element/desc…...

大数据面试题之Zookeeper面试题

目录 1、介绍下Zookeeper是什么? 2、Zookeeper有什么作用?优缺点?有什么应用场景? 3、Zookeeper的选举策略&#xff0c;leader和follower的区别? 4、介绍下Zookeeper选举算法 5、Zookeeper的节点类型有哪些?分别作用是什么? 6、Zookeeper的节点数怎么设置比较好? …...

JVM 内存区域

一、运行时数据区域 Java 虚拟机在执行 Java 程序的过程中&#xff0c;会把它管理的内存划分成若干个不同的数据区域。 JDK 1.8 和之前的版本略有不同&#xff0c;这里介绍 JDK 1.7 和 JDK 1.8 两个版本。 JDK 1.7&#xff1a; 线程私有&#xff1a; 程序计数器虚拟机栈本地…...

全网最强剖析Spring AOP底层原理

相信各位读者对于Spring AOP的理解都是一知半解&#xff0c;只懂使用&#xff0c;却不懂原理。网上关于Spring AOP的讲解层出不穷&#xff0c;但是易于理解&#xff0c;让人真正掌握原理的文章屈指可数。笔者针对这一痛点需求&#xff0c;决定写一篇关于Spring AOP原理的优质博…...

Vscode中的行尾序列CRLF/LF不兼容问题

最近开发的的时候&#xff0c;打开项目文件经常会出现爆红错误提示信息&#xff0c;显示如下图&#xff1a; 这东西太烦人了&#xff0c;毕竟谁都不希望在遍地都是爆红的代码里写东西&#xff0c;就像能解决这个问题&#xff0c;根据提示可以知道这是vscode中使用的prettier插件…...

常见加密方式:MD5、DES/AES、RSA、Base64

16/32位的数据&#xff0c;最有可能就是使用md5加密的 使用对称加密的时候&#xff0c;双方使用相同的私钥 私钥&#xff1a;单独请求/隐藏在前端的隐藏标签当中 二、RSA非对称密钥加密 公钥加密&#xff0c;私钥解密 私钥是通过公钥计算生成的 加密解密算法都在js源文件当…...

如何在 C++/Qt/CMake 项目中构建 Rust 代码

问题描述 我有一个使用 CMake 构建的现有 C/Qt 项目&#xff0c;我想开始添加 Rust 代码&#xff0c;并能够从主 C 代码库中调用这些 Rust 代码。应该如何组织项目结构&#xff1f; 现有项目结构 ./CMakeLists.txt ./subproject-foo/CMakeLists.txt ./subproject-foo/src/..…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...