#ifndef MESA_HANDLE__LOGGER_H #define MESA_HANDLE__LOGGER_H /* * runtime_log with handle, * based on runtime_log. * yang wei * create time:2014-03-24 * version:20140324 */ #ifdef __cplusplus extern "C" { #endif #define RLOG_LV_DEBUG 10 #define RLOG_LV_INFO 20 #define RLOG_LV_FATAL 30 #define MESA_HANDLE_RUNTIME_LOG(handle, lv, mod, fmt, args...) \ MESA_handle_runtime_log((handle), (lv), (mod), "file %s, line %d, " fmt, \ __FILE__, __LINE__, ##args) /* * name: MESA_create_runtime_log_handle * functionality: get runtime_log handle; * params: * file_path: path of log file, like "./log/runtime_log"; * level: level of log; * returns: * not NULL, if succeeded; * NULL, if file is not absolute path, or failed to create log file; */ void *MESA_create_runtime_log_handle(const char *file_path, int level); /* * name: MESA_handle_runtime_log * functionality: appends log message to runtime log file; * params: * handle:handle of runtime log, which is created by MESA_create_runtime_log_handle; * level: log level, messages with level value smaller the global var * "runtime_log_level" are ignored; * module: name of loggin module; * fmt: format string; * returns: * none; */ void MESA_handle_runtime_log(void *handle, int level, const char *module, const char *fmt, ...); /* * name: MESA_destroy_runtime_log_handle * functionality: release runtime log handle memory. * params: * handle: runtime log handle which is going to be released; * returns: * none; */ void MESA_destroy_runtime_log_handle(void *handle); #ifdef __cplusplus } #endif #endif