X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Flog.c;h=b001c3158278c733cd11a88d15dd379733eb5bba;hp=0463a629113bae6d77ca01040ef482a7fd5e70c9;hb=a5795a2df2095d5a44b012a59426e7b906db3ec9;hpb=88d3bedf772316f87e1996f655ccf8d1e2589755 diff --git a/src/log.c b/src/log.c index 0463a62..b001c31 100644 --- a/src/log.c +++ b/src/log.c @@ -28,25 +28,11 @@ #include #include #include +#include #include #include #include -#define HAS_STRERROR 1 - - -#if HAS_STRERROR - -#else -char *strerror(int n) -{ - extern char *sys_errlist[]; - return sys_errlist[n]; -} - -#endif - - static int l_level = YLOG_DEFAULT_LEVEL; enum l_file_type { use_stderr, use_none, use_file }; @@ -70,6 +56,7 @@ static char l_fname[512] = ""; static char l_old_default_format[] = "%H:%M:%S-%d/%m"; static char l_new_default_format[] = "%Y%m%d-%H%M%S"; #define TIMEFORMAT_LEN 50 +#define TID_LEN 30 static char l_custom_format[TIMEFORMAT_LEN] = ""; static char *l_actual_format = l_old_default_format; @@ -94,7 +81,8 @@ static struct { { YLOG_LOG, "log" }, { YLOG_ERRNO, ""}, { YLOG_MALLOC, "malloc"}, - { YLOG_APP, "app" }, + { YLOG_TID, "tid" }, + { YLOG_APP, "app" }, { YLOG_NOTIME, "notime" }, { YLOG_APP2, "app2" }, { YLOG_APP3, "app3" }, @@ -280,14 +268,14 @@ void yaz_log_set_handler(void (*func)(int, const char *, void *), void *info) void log_event_start(void (*func)(int, const char *, void *), void *info) { - start_hook_func = func; - start_hook_info = info; + start_hook_func = func; + start_hook_info = info; } void log_event_end(void (*func)(int, const char *, void *), void *info) { - end_hook_func = func; - end_hook_info = info; + end_hook_func = func; + end_hook_info = info; } static void yaz_log_open_check(struct tm *tm, int force, const char *filemode) @@ -397,6 +385,7 @@ static void yaz_log_to_file(int level, const char *log_message) if (file) { char tbuf[TIMEFORMAT_LEN]; + char tid[TID_LEN]; char flags[1024]; int i; @@ -426,7 +415,16 @@ static void yaz_log_to_file(int level, const char *log_message) } if (tbuf[0]) strcat(tbuf, " "); - fprintf(file, "%s%s%s %s%s\n", tbuf, l_prefix, flags, l_prefix2, + tid[0] = '\0'; + + if (l_level & YLOG_TID) + { + yaz_thread_id_cstr(tid, sizeof(tid)-1); + if (tid[0]) + strcat(tid, " "); + } + + fprintf(file, "%s%s%s%s %s%s\n", tbuf, l_prefix, tid, flags, l_prefix2, log_message); if (l_level & YLOG_FLUSH) fflush(file);