Revision: 22902 http://trac.macosforge.org/projects/launchd/changeset/22902 Author: zarzycki@apple.com Date: 2006-10-16 16:44:45 -0700 (Mon, 16 Oct 2006) Log Message: ----------- Better logging. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2006-10-16 23:43:11 UTC (rev 22901) +++ trunk/launchd/src/launchd_core_logic.c 2006-10-16 23:44:45 UTC (rev 22902) @@ -280,6 +280,7 @@ static void job_uncork_fork(job_t j); static struct machservice *job_lookup_service(job_t jbs, const char *name, bool check_parent); static void job_foreach_service(job_t jbs, void (*bs_iter)(struct machservice *, void *), void *context, bool only_anonymous); +static void job_logv(job_t j, int pri, const char *msg, va_list ap); static void job_log(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4))); static void job_log_error(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4))); static void job_log_bug(job_t j, const char *rcs_rev, const char *path, unsigned int line, const char *test); @@ -335,7 +336,7 @@ if (j->currently_ignored) { return; } - + j->currently_ignored = true; SLIST_FOREACH(sg, &j->sockets, sle) { @@ -836,6 +837,7 @@ j->parent = p ? job_get_bs(p) : NULL; j->min_run_time = LAUNCHD_MIN_JOB_RUN_TIME; j->timeout = LAUNCHD_ADVISABLE_IDLE_TIMEOUT; + j->currently_ignored = true; j->ondemand = true; j->checkedin = true; j->firstborn = (strcmp(label, FIRSTBORN_LABEL) == 0); @@ -1567,13 +1569,7 @@ job_callback(void *obj, struct kevent *kev) { job_t j = obj; - bool d = j->debug; - int oldmask = 0; - if (d) { - oldmask = setlogmask(LOG_UPTO(LOG_DEBUG)); - } - switch (kev->filter) { case EVFILT_PROC: job_reap(j); @@ -1631,11 +1627,6 @@ job_assumes(j, false); break; } - - if (d) { - /* the job might have been removed, must not call job_log() */ - setlogmask(oldmask); - } } void @@ -2086,34 +2077,47 @@ } void -job_log_error(job_t j, int pri, const char *msg, ...) +job_logv(job_t j, int pri, const char *msg, va_list ap) { char newmsg[10000]; - va_list ap; + int oldmask = 0; size_t o; o = job_prep_log_preface(j, newmsg); - sprintf(newmsg + o, ": %s: %s", msg, strerror(errno)); + sprintf(newmsg + o, ": %s", msg); - va_start(ap, msg); + if (j->debug) { + oldmask = setlogmask(LOG_UPTO(LOG_DEBUG)); + } + vsyslog(pri, newmsg, ap); - va_end(ap); + + if (j->debug) { + setlogmask(oldmask); + } } void -job_log(job_t j, int pri, const char *msg, ...) +job_log_error(job_t j, int pri, const char *msg, ...) { char newmsg[10000]; va_list ap; - size_t o; - o = job_prep_log_preface(j, newmsg); + sprintf(newmsg, "%s: %s", msg, strerror(errno)); - sprintf(newmsg + o, ": %s", msg); + va_start(ap, msg); + job_logv(j, pri, newmsg, ap); + va_end(ap); +} +void +job_log(job_t j, int pri, const char *msg, ...) +{ + va_list ap; + va_start(ap, msg); - vsyslog(pri, newmsg, ap); + job_logv(j, pri, msg, ap); va_end(ap); }
participants (1)
-
source_changes@macosforge.org