Skip to content

Commit

Permalink
logging: print log level in xlog() messages
Browse files Browse the repository at this point in the history
  • Loading branch information
rvlad-patrascu committed Jun 6, 2023
1 parent a4bf044 commit e18662a
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 30 deletions.
45 changes: 21 additions & 24 deletions dprint.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,8 @@ int init_log_cee_hostname(void)
#define DP_JSON_LEVEL_KEY ", \"level\": \""
#define DP_JSON_MODULE_KEY "\", \"module\": \""
#define DP_JSON_FUNC_KEY "\", \"function\": \""
#define DP_JSON_PREFIX_QT_KEY "\", \"prefix\": \""
#define DP_JSON_PREFIX_KEY ", \"prefix\": \""
#define DP_JSON_MSG_QT_KEY "\", \"message\": \""
#define DP_JSON_MSG_KEY ", \"message\": \""
#define DP_JSON_PREFIX_KEY "\", \"prefix\": \""
#define DP_JSON_MSG_KEY "\", \"message\": \""

#define DP_JSON_CEE_AT_PREFIX "@cee: "
#define DP_JSON_CEE_TIME_KEY "{\"time\": \""
Expand All @@ -218,8 +216,9 @@ int init_log_cee_hostname(void)
#define DP_JSON_CEE_MODULE_KEY "\", \"subsys\": \""
#define DP_JSON_CEE_FUNC_KEY "\", \"native\": {\"function\": \""
#define DP_JSON_CEE_PREFIX_KEY "\", \"log_prefix\": \""
#define DP_JSON_CEE_PREFIX_O_KEY "\"}, \"native\": {\"log_prefix\": \""
#define DP_JSON_CEE_MSG_KEY "\"}, \"msg\": \""
#define DP_JSON_CEE_PREFIX_O_KEY "\", \"native\": {\"log_prefix\": \""
#define DP_JSON_CEE_MSG_B_KEY "\"}, \"msg\": \""
#define DP_JSON_CEE_MSG_KEY "\", \"msg\": \""
#define DP_JSON_CEE_PNAME_KEY "\", \"pname\": \""
#define DP_JSON_CEE_PNAME_VAL "opensips"
#define DP_JSON_CEE_HOST_KEY "\", \"hostname\": \""
Expand Down Expand Up @@ -326,7 +325,8 @@ static int log_print_json(str *buf, enum log_json_format json_fmt, char *time,

len += S_LEN(DP_JSON_CEE_TIME_KEY) + strlen(time) +
S_LEN(DP_JSON_CEE_PID_KEY) + INT2STR_MAX_LEN +
(module && func ? S_LEN(DP_JSON_CEE_LEVEL_KEY) + strlen(level) +
S_LEN(DP_JSON_CEE_LEVEL_KEY) + strlen(level) +
(module && func ?
S_LEN(DP_JSON_CEE_MODULE_KEY) + strlen(module) +
S_LEN(DP_JSON_CEE_FUNC_KEY) + strlen(func) : 0) +
S_LEN(DP_JSON_CEE_PREFIX_O_KEY) + strlen(prefix) +
Expand All @@ -338,8 +338,8 @@ static int log_print_json(str *buf, enum log_json_format json_fmt, char *time,
INT2STR_MAX_LEN + S_LEN(DP_JSON_LEVEL_KEY) + strlen(level) +
(module && func ? S_LEN(DP_JSON_MODULE_KEY) + strlen(module) +
S_LEN(DP_JSON_FUNC_KEY) + strlen(func) : 0) +
S_LEN(DP_JSON_PREFIX_QT_KEY) + strlen(prefix) +
S_LEN(DP_JSON_MSG_QT_KEY) + rlen;
S_LEN(DP_JSON_PREFIX_KEY) + strlen(prefix) +
S_LEN(DP_JSON_MSG_KEY) + rlen;
}

if (len >= buf->len) {
Expand All @@ -361,10 +361,10 @@ static int log_print_json(str *buf, enum log_json_format json_fmt, char *time,
tmp = int2str(pid, &l);
append_string(p, tmp, l);

if (module && func) {
append_string_st(p, DP_JSON_CEE_LEVEL_KEY);
append_string(p, level, strlen(level));
append_string_st(p, DP_JSON_CEE_LEVEL_KEY);
append_string(p, level, strlen(level));

if (module && func) {
append_string_st(p, DP_JSON_CEE_MODULE_KEY);
append_string(p, module, strlen(module));

Expand All @@ -380,7 +380,10 @@ static int log_print_json(str *buf, enum log_json_format json_fmt, char *time,
append_string(p, prefix, strlen(prefix)-1/*skip the ':'*/);
}

append_string_st(p, DP_JSON_CEE_MSG_KEY);
if ((module && func) || strlen(prefix) != 0)
append_string_st(p, DP_JSON_CEE_MSG_B_KEY);
else
append_string_st(p, DP_JSON_CEE_MSG_KEY);
} else {
append_string_st(p, DP_JSON_TIME_KEY);
append_string(p, time, strlen(time));
Expand All @@ -389,10 +392,10 @@ static int log_print_json(str *buf, enum log_json_format json_fmt, char *time,
tmp = int2str(pid, &l);
append_string(p, tmp, l);

if (module && func) {
append_string_st(p, DP_JSON_LEVEL_KEY);
append_string(p, level, strlen(level));
append_string_st(p, DP_JSON_LEVEL_KEY);
append_string(p, level, strlen(level));

if (module && func) {
append_string_st(p, DP_JSON_MODULE_KEY);
append_string(p, module, strlen(module));

Expand All @@ -401,17 +404,11 @@ static int log_print_json(str *buf, enum log_json_format json_fmt, char *time,
}

if (strlen(prefix) != 0) {
if (module && func)
append_string_st(p, DP_JSON_PREFIX_QT_KEY);
else
append_string_st(p, DP_JSON_PREFIX_KEY);
append_string_st(p, DP_JSON_PREFIX_KEY);
append_string(p, prefix, strlen(prefix)-1/*skip the ':'*/);
}

if ((module && func) || strlen(prefix) != 0)
append_string_st(p, DP_JSON_MSG_QT_KEY);
else
append_string_st(p, DP_JSON_MSG_KEY);
append_string_st(p, DP_JSON_MSG_KEY);
}

l = vsnprintf(log_msg_buf, log_msg_buf_size, format, ap);
Expand Down
92 changes: 86 additions & 6 deletions dprint.h
Original file line number Diff line number Diff line change
Expand Up @@ -335,9 +335,49 @@ static inline char *dp_log_level_str(int log_level)
#define LM_GEN2( _facility, _lev, fmt, ...) \
do { \
if (is_printable(_lev)){ \
dprint(_lev, _facility, NULL, NULL, \
DP_PREFIX "%s" fmt, "%s" fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
switch(_lev){ \
case L_CRIT: \
dprint(_lev, _facility, NULL, NULL, \
DP_CRIT_PREFIX fmt, "%s" DP_CRIT_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
case L_ALERT: \
dprint(_lev, _facility, NULL, NULL, \
DP_ALERT_PREFIX fmt, "%s" DP_ALERT_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
case L_ERR: \
dprint(_lev, _facility, NULL, NULL, \
DP_ERR_PREFIX fmt, "%s" DP_ERR_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
case L_WARN: \
dprint(_lev, _facility, NULL, NULL, \
DP_WARN_PREFIX fmt, "%s" DP_WARN_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
case L_NOTICE: \
dprint(_lev, _facility, NULL, NULL, \
DP_NOTICE_PREFIX fmt, "%s" DP_NOTICE_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
case L_INFO: \
dprint(_lev, _facility, NULL, NULL, \
DP_INFO_PREFIX fmt, "%s" DP_INFO_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
case L_DBG: \
dprint(_lev, _facility, NULL, NULL, \
DP_DBG_PREFIX fmt, "%s" DP_DBG_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
default: \
if (_lev > L_DBG) \
dprint(_lev, _facility, NULL, NULL, \
DP_DBG_PREFIX fmt, "%s" DP_DBG_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix __VA_ARGS__) \
break; \
} \
} \
}while(0)

Expand Down Expand Up @@ -456,9 +496,49 @@ static inline char *dp_log_level_str(int log_level)
#define LM_GEN2( _facility, _lev, fmt, args...) \
do { \
if (is_printable(_lev)){ \
dprint(_lev, _facility, NULL, NULL, \
DP_PREFIX "%s" fmt, "%s" fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
switch(_lev){ \
case L_CRIT: \
dprint(_lev, _facility, NULL, NULL, \
DP_CRIT_PREFIX fmt, "%s" DP_CRIT_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
case L_ALERT: \
dprint(_lev, _facility, NULL, NULL, \
DP_ALERT_PREFIX fmt, "%s" DP_ALERT_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
case L_ERR: \
dprint(_lev, _facility, NULL, NULL, \
DP_ERR_PREFIX fmt, "%s" DP_ERR_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
case L_WARN: \
dprint(_lev, _facility, NULL, NULL, \
DP_WARN_PREFIX fmt, "%s" DP_WARN_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
case L_NOTICE: \
dprint(_lev, _facility, NULL, NULL, \
DP_NOTICE_PREFIX fmt, "%s" DP_NOTICE_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
case L_INFO: \
dprint(_lev, _facility, NULL, NULL, \
DP_INFO_PREFIX fmt, "%s" DP_INFO_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
case L_DBG: \
dprint(_lev, _facility, NULL, NULL, \
DP_DBG_PREFIX fmt, "%s" DP_DBG_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
default: \
if (_lev > L_DBG) \
dprint(_lev, _facility, NULL, NULL, \
DP_DBG_PREFIX fmt, "%s" DP_DBG_TEXT fmt, fmt, \
dp_time(), dp_my_pid(), log_prefix, ## args); \
break; \
} \
} \
}while(0)

Expand Down

0 comments on commit e18662a

Please sign in to comment.