]>
git.proxmox.com Git - mirror_frr.git/blob - ldpd/log.c
4 * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
27 #include <lib/log_int.h>
29 const char *log_procname
;
32 logit(int pri
, const char *fmt
, ...)
42 vlog(int pri
, const char *fmt
, va_list ap
)
46 switch (ldpd_process
) {
48 vsnprintf(buf
, sizeof(buf
), fmt
, ap
);
49 lde_imsg_compose_parent_sync(IMSG_LOG
, pri
, buf
,
53 vsnprintf(buf
, sizeof(buf
), fmt
, ap
);
54 ldpe_imsg_compose_parent_sync(IMSG_LOG
, pri
, buf
,
64 log_warn(const char *emsg
, ...)
69 /* best effort to even work in out of memory situations */
71 logit(LOG_ERR
, "%s", strerror(errno
));
75 if (asprintf(&nfmt
, "%s: %s", emsg
, strerror(errno
)) == -1) {
77 vlog(LOG_ERR
, emsg
, ap
);
78 logit(LOG_ERR
, "%s", strerror(errno
));
80 vlog(LOG_ERR
, nfmt
, ap
);
88 log_warnx(const char *emsg
, ...)
93 vlog(LOG_ERR
, emsg
, ap
);
98 log_info(const char *emsg
, ...)
103 vlog(LOG_INFO
, emsg
, ap
);
108 log_notice(const char *emsg
, ...)
113 vlog(LOG_NOTICE
, emsg
, ap
);
118 log_debug(const char *emsg
, ...)
123 vlog(LOG_DEBUG
, emsg
, ap
);
128 fatal(const char *emsg
)
131 logit(LOG_CRIT
, "fatal in %s: %s", log_procname
,
135 logit(LOG_CRIT
, "fatal in %s: %s: %s",
136 log_procname
, emsg
, strerror(errno
));
138 logit(LOG_CRIT
, "fatal in %s: %s",
145 fatalx(const char *emsg
)