From 7f699688c0c5962f3a6f70966899a71c52f180c0 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Mon, 8 Apr 2024 15:15:34 +0800 Subject: [PATCH] add functions: get_log_level and get_log_level_caption --- HISTORY | 3 + src/logger.c | 35 +---------- src/shared_func.c | 144 ++++++++++++++++++++++++++++++++-------------- src/shared_func.h | 17 +++++- 4 files changed, 120 insertions(+), 79 deletions(-) diff --git a/HISTORY b/HISTORY index 313d2d0..5079504 100644 --- a/HISTORY +++ b/HISTORY @@ -1,4 +1,7 @@ +Version 1.74 2024-04-08 + * add functions: get_log_level and get_log_level_caption + Version 1.73 2024-03-05 * add macro FC_SET_STRING_EMPTY * struct fast_task_info remove fields: connect_timeout and network_timeout diff --git a/src/logger.c b/src/logger.c index 62299c9..348fd06 100644 --- a/src/logger.c +++ b/src/logger.c @@ -1287,40 +1287,7 @@ void logAccess(LogContext *pContext, struct timeval *tvStart, \ const char *log_get_level_caption_ex(LogContext *pContext) { - const char *caption; - - switch (pContext->log_level) - { - case LOG_DEBUG: - caption = "DEBUG"; - break; - case LOG_INFO: - caption = "INFO"; - break; - case LOG_NOTICE: - caption = "NOTICE"; - break; - case LOG_WARNING: - caption = "WARNING"; - break; - case LOG_ERR: - caption = "ERROR"; - break; - case LOG_CRIT: - caption = "CRIT"; - break; - case LOG_ALERT: - caption = "ALERT"; - break; - case LOG_EMERG: - caption = "EMERG"; - break; - default: - caption = "UNKOWN"; - break; - } - - return caption; + return get_log_level_caption(pContext->log_level); } #ifndef LOG_FORMAT_CHECK diff --git a/src/shared_func.c b/src/shared_func.c index 678d1ef..2fbe0d1 100644 --- a/src/shared_func.c +++ b/src/shared_func.c @@ -1842,52 +1842,108 @@ int load_log_level_ex(const char *conf_filename) return 0; } +int get_log_level(char *pLogLevel, const int default_value) +{ + if (pLogLevel == NULL || *pLogLevel == '\0') + { + return default_value; + } + + toUppercase(pLogLevel); + if (strncmp(pLogLevel, "DEBUG", 5) == 0 || + strcmp(pLogLevel, "LOG_DEBUG") == 0) + { + return LOG_DEBUG; + } + else if (strncmp(pLogLevel, "INFO", 4) == 0 || + strcmp(pLogLevel, "LOG_INFO") == 0) + { + return LOG_INFO; + } + else if (strncmp(pLogLevel, "NOTICE", 6) == 0 || + strcmp(pLogLevel, "LOG_NOTICE") == 0) + { + return LOG_NOTICE; + } + else if (strncmp(pLogLevel, "WARN", 4) == 0 || + strcmp(pLogLevel, "LOG_WARNING") == 0) + { + return LOG_WARNING; + } + else if (strncmp(pLogLevel, "ERR", 3) == 0 || + strcmp(pLogLevel, "LOG_ERR") == 0) + { + return LOG_ERR; + } + else if (strncmp(pLogLevel, "CRIT", 4) == 0 || + strcmp(pLogLevel, "LOG_CRIT") == 0) + { + return LOG_CRIT; + } + else if (strncmp(pLogLevel, "ALERT", 5) == 0 || + strcmp(pLogLevel, "LOG_ALERT") == 0) + { + return LOG_ALERT; + } + else if (strncmp(pLogLevel, "EMERG", 5) == 0 || + strcmp(pLogLevel, "LOG_EMERG") == 0) + { + return LOG_EMERG; + } else { + logWarning("file: "__FILE__", line: %d, " + "unkown log level: %s, set to default value!", + __LINE__, pLogLevel); + return default_value; + } +} + +const char *get_log_level_caption(const int log_level) +{ + const char *caption; + + switch (log_level) + { + case LOG_DEBUG: + caption = "DEBUG"; + break; + case LOG_INFO: + caption = "INFO"; + break; + case LOG_NOTICE: + caption = "NOTICE"; + break; + case LOG_WARNING: + caption = "WARNING"; + break; + case LOG_ERR: + caption = "ERROR"; + break; + case LOG_CRIT: + caption = "CRIT"; + break; + case LOG_ALERT: + caption = "ALERT"; + break; + case LOG_EMERG: + caption = "EMERG"; + break; + default: + caption = "UNKOWN"; + break; + } + + return caption; +} + void set_log_level(char *pLogLevel) { - if (pLogLevel != NULL) - { - toUppercase(pLogLevel); - if ( strncmp(pLogLevel, "DEBUG", 5) == 0 || \ - strcmp(pLogLevel, "LOG_DEBUG") == 0) - { - g_log_context.log_level = LOG_DEBUG; - } - else if ( strncmp(pLogLevel, "INFO", 4) == 0 || \ - strcmp(pLogLevel, "LOG_INFO") == 0) - { - g_log_context.log_level = LOG_INFO; - } - else if ( strncmp(pLogLevel, "NOTICE", 6) == 0 || \ - strcmp(pLogLevel, "LOG_NOTICE") == 0) - { - g_log_context.log_level = LOG_NOTICE; - } - else if ( strncmp(pLogLevel, "WARN", 4) == 0 || \ - strcmp(pLogLevel, "LOG_WARNING") == 0) - { - g_log_context.log_level = LOG_WARNING; - } - else if ( strncmp(pLogLevel, "ERR", 3) == 0 || \ - strcmp(pLogLevel, "LOG_ERR") == 0) - { - g_log_context.log_level = LOG_ERR; - } - else if ( strncmp(pLogLevel, "CRIT", 4) == 0 || \ - strcmp(pLogLevel, "LOG_CRIT") == 0) - { - g_log_context.log_level = LOG_CRIT; - } - else if ( strncmp(pLogLevel, "ALERT", 5) == 0 || \ - strcmp(pLogLevel, "LOG_ALERT") == 0) - { - g_log_context.log_level = LOG_ALERT; - } - else if ( strncmp(pLogLevel, "EMERG", 5) == 0 || \ - strcmp(pLogLevel, "LOG_EMERG") == 0) - { - g_log_context.log_level = LOG_EMERG; - } - } + int log_level; + + log_level = get_log_level(pLogLevel, LOG_NOTHING); + if (log_level != LOG_NOTHING) + { + g_log_context.log_level = log_level; + } } int fcntl_add_flags(int fd, int get_cmd, int set_cmd, int adding_flags) diff --git a/src/shared_func.h b/src/shared_func.h index d210a37..73f51ef 100644 --- a/src/shared_func.h +++ b/src/shared_func.h @@ -531,11 +531,26 @@ int load_log_level_ex(const char *conf_filename); /** set global log level * parameters: - * pLogLevel: log level string value + * pLogLevel: the log level string value * return: none */ void set_log_level(char *pLogLevel); +/** get log level by caption + * parameters: + * pLogLevel: the log level string value + * default_value: the default log level + * return: the log level integer value +*/ +int get_log_level(char *pLogLevel, const int default_value); + +/** get log level caption + * parameters: + * log_level: the log level integer value + * return: the log level caption +*/ +const char *get_log_level_caption(const int log_level); + /** load allow hosts from config context * parameters: * pIniContext: the config context