diff options
| author | yangwei <[email protected]> | 2020-09-21 20:42:25 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2020-09-21 20:42:25 +0800 |
| commit | 186571e82395893a1b9c8d84a5f713b4653401dc (patch) | |
| tree | 0fd38ef6144ba298da1e682d8a2cbcc4915a2ebc /src | |
| parent | e39e641103e19e27aa004932e5b3a4b984a7897d (diff) | |
UPDATE:logger2行为模式更新:
1、对于logger1的行为,默认使用snapshot文件初始化
2、对于logger2传入null或者无法访问或者错误格式的初始化profile,尝试使用null初始化,默认行为为stdout
Diffstat (limited to 'src')
| -rw-r--r-- | src/MESA_handle_logger.c | 69 |
1 files changed, 55 insertions, 14 deletions
diff --git a/src/MESA_handle_logger.c b/src/MESA_handle_logger.c index c630867..55cd1cf 100644 --- a/src/MESA_handle_logger.c +++ b/src/MESA_handle_logger.c @@ -9,6 +9,7 @@ #include <time.h> #define MAX_HANDLE_LOG_PATH 4096 +static int g_zlog_inited = 0; static int g_zlog_conf_fp = -1; static char global_conf_filepath[MAX_HANDLE_LOG_PATH] = ""; static char tmp_conf_filepath[MAX_HANDLE_LOG_PATH] = ""; @@ -128,7 +129,7 @@ static const char *loglevel_to_name(int level) static void snapshot_handle_info(const char *handle_name, const char *log_path, int level) { char zlog_rule_conf_content[MAX_HANDLE_LOG_PATH + 1] = ""; - static char *zlog_conf_init_buff = "[global]\ndefault format = \"%%d(%%c), %%V, %F, %U, %%m%%n\" \n[levels]\nDEBUG=10\nINFO=20\nFATAL=30\n[rules]"; + static char *zlog_conf_init_buff = "[global]\ndefault format = \"%d(%c), %V, %F, %U, %m%n\" \n[levels]\nDEBUG=10\nINFO=20\nFATAL=30\n[rules]"; if (g_zlog_conf_fp == -1) { char temp_filename[1024] = ""; @@ -150,6 +151,13 @@ static void snapshot_handle_info(const char *handle_name, const char *log_path, handle_name, loglevel_to_name(level), log_path); write(g_zlog_conf_fp, zlog_rule_conf_content, strlen(zlog_rule_conf_content)); fsync(g_zlog_conf_fp); + + if(g_zlog_inited == 0) + { + printf("[snapshot_handle_info], Nobody call MESA_handle_runtime_log_creation before, Using (%s) to init zlog!!!\n", tmp_conf_filepath); + zlog_init(tmp_conf_filepath); + zlog_reload(NULL); + } return; } @@ -182,7 +190,7 @@ void *MESA_create_runtime_log_handle(const char *file_path, int level) zc = zlog_get_category(p_name); if (!zc) { - printf("MESA_create_runtime_log_handle, get zlog category %s in global_conf_filepath[%s] fail\n", p_name, global_conf_filepath); + printf("[MESA_create_runtime_log_handle], get zlog category (%s) in global_conf_filepath(%s) fail\n", p_name, global_conf_filepath); } p_handle = (log_handle_t *)calloc(sizeof(log_handle_t), 1); strncpy(p_handle->runtime_log_file, file_path, sizeof(p_handle->runtime_log_file) - 1); @@ -222,23 +230,56 @@ void MESA_handle_runtime_log(void *handle, int level, const char *module, const int MESA_handle_runtime_log_creation(const char *conf_path) { - if(conf_path == NULL) + char *env = getenv("ZLOG_CONF_PATH"); + int rc = 0; + if (conf_path == NULL || (access(conf_path, R_OK) != 0)) { - printf("MESA_handle_runtime_log_creation USING [NULL], will using ZLOG_CONF_PATH or STDOUT as default profile\n"); - return zlog_init(NULL); - } - - int rc = zlog_init(conf_path); - if (rc) - { - printf("MESA_handle_runtime_log_creation init zlog by %s failed \n", conf_path); - return -1; + printf("[MESA_handle_runtime_log_creation], PATH (%s) unable to access, will output log to STDOUT or Using ZLOG_CONF_PATH (%s) !\n", conf_path, env); + rc = zlog_init(NULL); + if (rc) + { + printf("[MESA_handle_runtime_log_creation], INIT zlog by (NULL) or (%s) failed !!! \n", env); + return -1; + } + else + { + if (env != NULL) + { + strcpy(global_conf_filepath, env); + } + } } else { - strcpy(global_conf_filepath, conf_path); - zlog_profile(); + rc = zlog_init(conf_path); + if (rc) + { + printf("[MESA_handle_runtime_log_creation], INIT zlog by (%s) failed , using [NULL] retry !\n", conf_path); + rc = zlog_init(NULL); + if (rc) + { + printf("[MESA_handle_runtime_log_creation], INIT zlog by (NULL) or (%s) failed \n", env); + return -1; + } + else + { + if(env != NULL) + { + strcpy(global_conf_filepath, env); + } + } + + } + else + { + strcpy(global_conf_filepath, conf_path); + } + } + printf("[MESA_handle_runtime_log_creation], INIT zlog finish, Using (%s). \n", global_conf_filepath); + g_zlog_inited = 1; + zlog_profile(); + return rc; } |
