码迷,mamicode.com
首页 > 其他好文 > 详细

Aerospike C客户端手册———日志

时间:2015-05-13 19:52:54      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:nosql   内存数据库   aerospike   shard-nothing   分布式   

日志

Aerospike C客户端有一个日志设施,用于记录内部日志信息。默认情况下,日志记录器将日志信息写到stderr。但应用可更改日志的详细程度或提供一个客户化方法来记录日志信息。

设置日志级别

若应用需要修改日志信息详细程度,可使用as_log_set_level()设置不同的日志级别:.

as_log_set_level(&as->log, AS_LOG_LEVEL_DEBUG);

日志级别有:

  • AS_LOG_LEVEL_OFF
  • AS_LOG_LEVEL_ERROR
  • AS_LOG_LEVEL_WARN
  • AS_LOG_LEVEL_INFO
  • AS_LOG_LEVEL_DEBUG
  • AS_LOG_LEVEL_TRACE

设置一个客户化日志回调函数

除了设置日志级别,应用可提供一个客户化日志回调用函数(使用as_log_set_callback()设置), 来根据应用的需要来重定向、过滤或者格式化日志信息。

日志回调函数的型构是:

typedef bool (*as_log_callback)(as_log_level level, const char *func, const char *file, uint32_t line, const char *fmt, ...);

参数解释如下:

  • level — 日志信息级别。
  • func — 日志信息被记录位置的函数名称。
  • file — 日志信息被记录位置的文件名称。
  • line — 日志信息被记录位置的文件行号。
  • fmt — 日志信息格式化串。
  • ... — 格式化串对应的参数。

下面是一个客户化日志回调函数的例子:

bool my_log_callback(as_log_level level, const char *func, const char *file,
    uint32_t line, const char *fmt, ...)
{
    char msg[1024] = {0};
    va_list ap;

    va_start(ap, fmt);
    vsnprintf(msg, 1024, fmt, ap);
    msg[1023] = ‘\0‘;
    va_end(ap);

    fprintf(stderr, "[%s:%d][%s] %d - %s\n", file, line, func, level, msg);

    return true;
}

上面这个客户化函数可以如下进行设置使用:

as_log_set_level(AS_LOG_LEVEL_INFO);
as_log_set_callback(as_client_log_callback);

若使用3.0.85及以下旧版本C客户端,则:

as_log_set_level(&as->log, AS_LOG_LEVEL_INFO);
as_log_set_callback(&as->log, as_client_log_callback);

译       者:歪脖大肚子Q
 

Aerospike C客户端手册———日志

标签:nosql   内存数据库   aerospike   shard-nothing   分布式   

原文地址:http://blog.csdn.net/jj_tyro/article/details/45695095

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!