开发者社区> 问答> 正文

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

前面和大家分享了如何编译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有所帮助

展开
收起
yjseu 2015-10-28 19:32:32 11864 0
3 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista
    优秀文章-欢迎进行技术分享,感谢你的支持!
    2015-10-28 21:10:10
    赞同 展开评论 打赏
  •     
    2015-10-28 21:06:21
    赞同 展开评论 打赏
  • 阿里云对象存储(OSS)开发工程师
    Reosscsdk如何设置程序日志的输出
    2015-10-28 20:46:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载