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);