OpenHarmony工具集之日志工具·让日志信息更容易查
介绍
在控制台日志打印窗口中找到应用程序中自定义的日志信息是比较困难的,官方对console
日志打印不再维护且推荐使用@ohos.hilog
,接下来将对其进行封装,遵守易过滤、易查看的原则进行封装,封装后更便于调试应用程序。
准备知识
- 在打印日志之前需要调用
hilog.isLoggable
检查指定领域标识、日志标识和级别的日志是否可以打印。 - 日志级别
- DEBUG(3)
hilog.LogLevel.DEBUG
- INFO(4)
hilog.LogLevel.INFO
- WARN(5)
hilog.LogLevel.WARN
- ERROR(6)
hilog.LogLevel.ERROR
- DEBUG(3)
- 方法
hilog.debug
级别为DEBUG日志hilog.info
级别为INFO日志hilog.warn
级别为WARN日志hilog.error
级别为ERROR日志
封装方法
printInfo(tag: string, log: string)
打印常规日志printWarning(tag: string, log: string)
打印警告日志printDebug(tag: string, log: string)
打印调试日志printError(tag: string, log: string)
打印错误日志
使用方法
在具体页面引入LogUtil
import log from '@ohos/tecore/src/main/ets/utils/LogUtil';
需要打印的位置,调用打印方法
const TAG = "Index";Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { log.printInfo(TAG, "这是点击Text文本组件显示的信息") })
查看日志
打开DevEco Studio工具底部Log选项卡,选择OpenLog标签,在过滤输入框中输入tag
页签标识,会在控制台中显示所有tag
页签标识的日志信息。
详细代码
/** * @Description 日志打印工具 * @date 2022/7/14 10:42 * @Author Bai XiaoMing * @Version 1.0 */import hilog from '@ohos.hilog';const TAG = '[TuEr Tools]';const DOMAIN = 0x6688;export default class LogUtil { /** * 打印信息 * @param tag 页签标记 * @param log 提示信息 */ static printInfo(tag: string, log: string) { if (hilog.isLoggable(DOMAIN, TAG, hilog.LogLevel.INFO)) { hilog.info(DOMAIN, tag, `----- ${TAG} ---> tag: ** ${tag} ** ---> info: %{public}s -----`, log); } else { this.printWarning(tag, "领域标识或日志标识暂不支持打印"); } } /** * 打印警告信息 * @param tag 页签标记 * @param log 提示信息 */ static printWarning(tag: string, log: string) { if (hilog.isLoggable(DOMAIN, TAG, hilog.LogLevel.WARN)) { hilog.warn(DOMAIN, tag, `----- ${TAG} ---> tag: ** ${tag} ** ---> warning: %{public}s -----`, log); } else { console.warn(`${TAG} ---> tag: ${tag} ---> warning: ${log}`); } } /** * 打印调试信息 * @param tag 页签标记 * @param log 提示信息 */ static printDebug(tag: string, log: string) { if (hilog.isLoggable(DOMAIN, TAG, hilog.LogLevel.DEBUG)) { hilog.debug(DOMAIN, tag, `----- ${TAG} ---> tag: ** ${tag} ** ---> debug: %{public}s -----`, log); } else { this.printWarning(tag, "领域标识或日志标识暂不支持打印"); } } /** * 打印错误信息 * @param tag 页签标记 * @param log 提示信息 */ static printError(tag: string, log: string) { if (hilog.isLoggable(DOMAIN, TAG, hilog.LogLevel.ERROR)) { hilog.error(DOMAIN, tag, `----- ${TAG} ---> tag: ** ${tag} ** ---> error: %{public}s -----`, log); } else { this.printWarning(tag, "领域标识或日志标识暂不支持打印"); } }}