Allow new log format to be turned on if required

This provides the 'use_new_timestamp_log_format' variable in `ns_turn_utils.h`.  By
default it is set to 0 and the old 'seconds since daemon was started' timestamp will
be emitted.  However, if it is set to 1 or any 'true' number the new date and time
timestamp format will be used instead.

This has also resulted in a small clean-up of some of the string length handling.

Signed-off-by: Paul Wayper <paulway@mabula.net>
This commit is contained in:
Paul Wayper 2020-08-31 22:34:54 +10:00
parent 762ee23482
commit 16eeb53e07
2 changed files with 13 additions and 6 deletions

View File

@ -158,6 +158,8 @@ void set_no_stdout_log(int val)
no_stdout_log = val;
}
int use_new_log_timestamp_format = 0;
void turn_log_func_default(TURN_LOG_LEVEL level, const char* format, ...)
{
#if !defined(TURN_LOG_FUNC_IMPL)
@ -178,12 +180,16 @@ void turn_log_func_default(TURN_LOG_LEVEL level, const char* format, ...)
#define MAX_RTPPRINTF_BUFFER_SIZE (1024)
char s[MAX_RTPPRINTF_BUFFER_SIZE+1];
#undef MAX_RTPPRINTF_BUFFER_SIZE
time_t now = time(NULL);
strftime(s, sizeof(s), "%Y-%m-%dT%H:%M:%S", localtime(&now));
snprintf(s + 19,sizeof(s)-100,(level == TURN_LOG_LEVEL_ERROR) ? ": ERROR: " : ": ");
size_t slen = strlen(s);
vsnprintf(s+slen,sizeof(s)-slen-1,format, args);
fwrite(s,strlen(s),1,stdout);
size_t so_far = 0;
if (use_new_log_timestamp_format) {
time_t now = time(NULL);
so_far += strftime(s, sizeof(s), "%Y-%m-%dT%H:%M:%S", localtime(&now));
} else {
so_far += snprintf(s, sizeof(s), "%lu: ", (unsigned long)log_time());
}
so_far += snprintf(s + so_far, sizeof(s)-100, (level == TURN_LOG_LEVEL_ERROR) ? ": ERROR: " : ": ");
so_far += vsnprintf(s + so_far,sizeof(s) - (so_far+1), format, args);
fwrite(s, so_far, 1, stdout);
#endif
va_end(args);
}

View File

@ -69,6 +69,7 @@ void addr_debug_print(int verbose, const ioa_addr *addr, const char* s);
extern volatile int _log_time_value_set;
extern volatile turn_time_t _log_time_value;
extern int use_new_log_timestamp_format;
void rtpprintf(const char *format, ...);
int vrtpprintf(TURN_LOG_LEVEL level, const char *format, va_list args);