qnx slog2应用实践小结

一 应用场景简介

     在QNX系统上开发的应用需要打印日志以帮助开发人员排查相关问题,在C/C++程序中可以使用printf输出到控制台,但很多程序在后台运行,因此借助slog2相关API封装成日志类用于向slog输出日志。

二 QNX slog2简介

1.概述

slog2 是QNX系统提供的一套log机制,slog2info是管理slog的一个进程,可通过slog2info命令获取历史log。

2.slog API

(1)配置log

typedef struct
{
    int                   num_buffers;          // log buffer集 中有多少个buffer
    const char           *buffer_set_name;      // log buffer集的名称一般是进程名,slog2info -b 参数使用
    uint8_t               verbosity_level;
    // 整个log buffer集中的最小verbosity_level,只有高于verbosity_level的log才会写入log buffer中
    slog2_buffer_config_t buffer_config[ SLOG2_MAX_BUFFERS ];
    uint32_t              max_retries;
} slog2_buffer_set_config_t;
typedef struct
{
    const char    *buffer_name;         // slog2 buffer 名称
    int            num_pages;           // 用于定于log buffer的大小,一个page是4kB
} slog2_buffer_config_t;

(2)创建实例

int slog2_register( slog2_buffer_set_config_t *config,      // buffer集的配置结构体
                    slog2_buffer_t *handles,                // 返回操作buffer的handle,后面打印log函数会用到
                    uint32_t flags );                       // 用于指定是否存放到flash中,方便热启时恢复
// 返回值:0 成功,-1 失败

(3)打印日志

vslog2f(nullptr, log_id_, match_level(level), fmt, args); // 按可变参数打印日志 具体用法可参考如下代码

三 slog封装类

wangzhicheng2013/qnx_slog2 (github.com)

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值