ITPub博客

首页 > 数据库 > 数据库开发技术 > OpenHarmony设备开发中HiLog库的Rust接口

OpenHarmony设备开发中HiLog库的Rust接口

数据库开发技术 作者:PixelWizard 时间:2023-12-22 08:25:06 0 删除 编辑

目前,关于如何在OpenHarmony设备开发中以Rust语言调用HiLog,不存在很明确的教程和资料。

在我的上一篇博客中展示了一个Rust语言调用HiLog的案例,链接:

OpenHarmony设备开发中以Rust语言调用HiLog | 华为开发者联盟 (huawei.com)

然而,在实践中,开发者对于HiLog的使用需求是多样的。

因此,这里直接瞧瞧OpenHarmony中HiLog库的Rust接口吧。相关链接是:

https://gitee.com/openharmony/hiviewdfx_hilog/tree/master/interfaces/rust

仓库名为hiviewdfx_hilog,其中,DFX(Design for X)子系统是为了提升软件质量设计的工具集。

Rust语言的文件包括:

interfaces/rust/src/macros.rs · OpenHarmony/hiviewdfx_hilog - 码云 - 开源中国 (gitee.com)

和

interfaces/rust/src/lib.rs · OpenHarmony/hiviewdfx_hilog - 码云 - 开源中国 (gitee.com)

能看到底层的各种定义,比如日志的级别:

/// log level
#[derive(Debug)]
pub enum LogLevel {
/// min log level
LogLevelMin = 0,
/// The "debug" level.
///
/// Designates lower priority log.
Debug = 3,
/// The "info" level.
///
/// Designates useful information.
Info = 4,
/// The "warn" level.
///
/// Designates hazardous situations.
Warn = 5,
/// The "error" level.
///
/// Designates very serious errors.
Error = 6,
/// The "fatal" level.
///
/// Designates major fatal anomaly.
Fatal = 7,
/// max log level
LogLevelMax,
}

还有很重要的打印功能:

/// hilog ffi interface HiLogPrint
pub fn HiLogPrint(
logType: u8,
level: u8,
domain: u32,
tag: *const c_char,
fmt: *const c_char,
...
) -> u32;

源码中宏的定义和调用较为复杂,以后再说。

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-05-23

  • 博文量
    13
  • 访问量
    615