This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cuiyiming-mesa-flexible-logger/include/MESA_handle_logger.h
2018-08-12 19:11:04 +08:00

108 lines
2.9 KiB
C

#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, you can only use 3 levels: RLOG_LV_DEBUG, RLOG_LV_INFO, RLOG_LV_FATAL;
* 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_create_runtime_log_handle_new
* functionality: get runtime_log handle, it depends on easylogging++.
* we recommend you to use the new constructed function;;
* params:
* logger_id: indentify a handle;
* no parameter level, we recommand you to use MESA_set_runtime_log_handle_opt to enable or disable a level
* returns:
* not NULL, if succeeded;
* NULL, if logger_id == NULL or level is invalid;
*/
void* MESA_create_runtime_log_handle_new(const char* logger_id);
/*
* 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_read_handle_runtime_log_conf
* functionality: read and set the conf of a handle;
* params:
* handle: handle of runtime log;
* conf_file_path: path of the conf file;
* returns:
* 0, if succeeded;
* -1, if failed;
*/
int MESA_read_runtime_log_handle_conf(void* handle, const char* conf_file_path);
/*
* name: MESA_set_runtime_log_handle_opt
* functionality: set option of a runtime_log_handle;
* params:
* handle: handle of runtime log;
* level: log level;
* key: key of option ;
* value: value of option;
* returns:
* 0, if succeeded;
* -1, if failed;
*/
int MESA_set_runtime_log_handle_opt(void* handle, int level, const char* key, const char* value);
/*
* 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