oss c sdk如何设置程序日志的输出-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

oss c sdk如何设置程序日志的输出

yjseu 2015-10-28 19:32:32 9568
前面和大家分享了如何编译oss c sdk以及如何运行oss c sdk中的sample实例。今天和大家分享一下如何在oss c sdk中进行日志设置。
最近,陆续有用户反馈如何在oss c sdk中进行日志输出的设置,包括日志级别,日志输出的路径指定、日志输出的格式以及自定义日志输出的处理,这些功能其实在oss c sdk中都提供了相应接口,现在和大家一起分享一下,有考虑不周的地方希望大家指出。

大家可以在aos_log.h中看到sdk提供的一些日志设置的接口。

(1)设置日志输出路径
         void aos_log_set_output(apr_file_t *output)
         这个接口允许用户设置日志输出的路径,默认情况下该值为NULL,利用stderr文件描述符将相关的日志信息输出到屏幕。如果用户想将日志输出到指定的文件中,只需要给出一个apr_file_t类型的参数,就可以将日志输出到指定的文件中。比如:
         aos_pool_t *p;
         apr_file_t *log_file;
         char *log_filename = "./log_file";
         aos_pool_create(&p, NULL);
         apr_file_open(&log_file, log_filename, APR_WRITE|APR_CREATE| APR_TRUNCATE, APR_OS_DEFAULT, p);
         aos_log_set_output(log_file);
         ...

        通过以上设置就将日志重定向到本地目录的log_file文件中。这段代码中用到了apr库提供的apr_file_open函数,具体可以参考 http://apr.apache.org/docs/apr/1.4/group__apr__file__io.html#gabda14cbf242fb4fe99055434213e5446 。 另外需要注意的是这个日志输出设定时使用的内存池pool的生命周期,避免发生内存访问错误。


(2)设置日志输出的级别
         void aos_log_set_level(aos_log_level_e level)
         这个接口允许用户设置日志输出的日志级别,aos_log_level_e 是一个枚举类型,定义如下:
         typedef enum {
              AOS_LOG_OFF = 1,
              AOS_LOG_FATAL,
              AOS_LOG_ERROR,
              AOS_LOG_WARN,
              AOS_LOG_INFO,
              AOS_LOG_DEBUG,
              AOS_LOG_TRACE,
             AOS_LOG_ALL
          } aos_log_level_e;
          默认情况下使用 AOS_LOG_WARN,用户可以根据自己的需求设置日志级别


(3)设置日志输出的callback,对日志输出做处理
         void aos_log_set_print(aos_log_print_pt p);
         void aos_log_set_format(aos_log_format_pt p);
         oss c sdk提供了两个callback给用户,允许用户对日志输出进行个性化定制,默认的实现是aos_log_print_default和aos_log_format_default,感兴趣的用户可以按照自己的需求进行定制。


以上就是oss c sdk提供给用户对于日志输出的接口,用户可以根据上面的简单介绍根据自己的需求设置日志输出,希望今天的分享能够对大家使用oss c sdk有所帮助

搜索推荐 开发工具 对象存储
分享到
取消 提交回答
全部回答(3)
  • 西秦说云
    2015-10-28 21:10:10
    优秀文章-欢迎进行技术分享,感谢你的支持!
    0 0
  • 孤城
    2015-10-28 21:06:21
        
    0 0
  • 秋二
    2015-10-28 20:46:50
    Reosscsdk如何设置程序日志的输出
    0 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题