X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Flib%2Fmessage.c;h=2b624f823595163ccfad674c98d10a5f88d2d88f;hb=334b701e895a6ec517b26d05cf1266c25d518025;hp=2e1e9ff8cd2892b2a59ba5b111b2804739472890;hpb=2f53303a72bf843d200d3794277b0cc2bcb7de6d;p=bacula%2Fbacula diff --git a/bacula/src/lib/message.c b/bacula/src/lib/message.c index 2e1e9ff8cd..2b624f8235 100644 --- a/bacula/src/lib/message.c +++ b/bacula/src/lib/message.c @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2008 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -49,7 +49,8 @@ sql_escape p_sql_escape = NULL; */ const char *working_directory = NULL; /* working directory path stored here */ int verbose = 0; /* increase User messages */ -int debug_level = 1; /* debug level */ +int debug_level = 0; /* debug level */ +bool dbg_timestamp = false; /* print timestamp in debug output */ time_t daemon_start_time = 0; /* Daemon start time */ const char *version = VERSION " (" BDATE ")"; char my_name[30]; /* daemon name is stored here */ @@ -843,6 +844,7 @@ d_msg(const char *file, int line, int level, const char *fmt,...) int len; va_list arg_ptr; bool details = true; + time_t mtime; if (level < 0) { details = false; @@ -850,6 +852,15 @@ d_msg(const char *file, int line, int level, const char *fmt,...) } if (level <= debug_level) { + if (dbg_timestamp) { + mtime = time(NULL); + bstrftimes(buf, sizeof(buf), mtime); + len = strlen(buf); + buf[len++] = ' '; + buf[len] = 0; + fputs(buf, stdout); + } + #ifdef FULL_LOCATION if (details) { len = bsnprintf(buf, sizeof(buf), "%s: %s:%d-%u ", @@ -1073,7 +1084,7 @@ Jmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...) va_list arg_ptr; int len; MSGS *msgs; - const char *job; + uint32_t JobId = 0; Dmsg1(850, "Enter Jmsg type=%d\n", type); @@ -1093,20 +1104,16 @@ Jmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...) } msgs = NULL; - job = NULL; if (!jcr) { jcr = get_jcr_from_tsd(); } if (jcr) { msgs = jcr->jcr_msgs; - job = jcr->Job; + JobId = jcr->JobId; } if (!msgs) { msgs = daemon_msgs; /* if no jcr, we use daemon handler */ } - if (!job) { - job = ""; /* Set null job name if none */ - } /* * Check if we have a message destination defined. @@ -1124,25 +1131,26 @@ Jmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...) len = bsnprintf(rbuf, sizeof(rbuf), _("%s ERROR TERMINATION\n"), my_name); break; case M_FATAL: - len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Fatal error: "), my_name, job); + len = bsnprintf(rbuf, sizeof(rbuf), _("%s JobId %u: Fatal error: "), my_name, JobId); if (jcr) { set_jcr_job_status(jcr, JS_FatalError); } break; case M_ERROR: - len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Error: "), my_name, job); + len = bsnprintf(rbuf, sizeof(rbuf), _("%s JobId %u: Error: "), my_name, JobId); if (jcr) { jcr->Errors++; } break; case M_WARNING: - len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Warning: "), my_name, job); + len = bsnprintf(rbuf, sizeof(rbuf), _("%s JobId %u: Warning: "), my_name, JobId); break; case M_SECURITY: - len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Security violation: "), my_name, job); + len = bsnprintf(rbuf, sizeof(rbuf), _("%s JobId %u: Security violation: "), + my_name, JobId); break; default: - len = bsnprintf(rbuf, sizeof(rbuf), "%s: ", my_name); + len = bsnprintf(rbuf, sizeof(rbuf), "%s JobId %u: ", my_name, JobId); break; } @@ -1338,7 +1346,7 @@ void Qmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...) jcr = get_jcr_from_tsd(); } /* If no jcr or dequeuing send to daemon to avoid recursion */ - if (!jcr || jcr->dequeuing) { + if ((jcr && !jcr->msg_queue) || !jcr || jcr->dequeuing) { /* jcr==NULL => daemon message, safe to send now */ Jmsg(jcr, item->type, item->mtime, "%s", item->msg); free(item);