static void vMessage(uint32_t class, const char *message, va_list args)
{
- if (system_log) {
- /* Messages go to the system log interface */
- vslilog_part(system_log, class, message, args);
- } else {
- vMessageFallback(class,message,args);
- }
+ vslilog_part(system_log, class, message, args);
}
void Message(uint32_t class, const char *message, ...)
va_end(args);
}
+void cfgfatal_cl_type(struct cloc loc, const char *facility,
+ closure_t *cl, uint32_t exp_type, const char *name)
+{
+ char expbuf[10], gotbuf[10];
+ assert(cl->type != exp_type);
+ const char *exp = closure_type_name(exp_type, expbuf);
+ const char *got = closure_type_name(cl->type, gotbuf);
+ cfgfatal(loc,facility,
+ "\"%s\" is the wrong type of closure (expected %s, got %s)\n",
+ name, exp, got);
+}
+
void cfgfatal(struct cloc loc, cstring_t facility, const char *message, ...)
{
va_list args;
st->level=string_list_to_word(dict_lookup(dict,"class"),
message_class_table,"logfile");
- add_hook(PHASE_GETRESOURCES,logfile_phase_hook,st);
+ add_hook(PHASE_DAEMONIZE,logfile_phase_hook,st);
add_hook(PHASE_CHILDPERSIST,logfile_childpersist_hook,st);
return new_closure(&st->cl);
st->facility=string_to_word(facstr,loc,
syslog_facility_table,"syslog");
st->open=False;
- add_hook(PHASE_GETRESOURCES,syslog_phase_hook,st);
+ add_hook(PHASE_DAEMONIZE,syslog_phase_hook,st);
add_hook(PHASE_CHILDPERSIST,syslog_phase_hook,st);
return new_closure(&st->cl);
}
static struct logfile startup_log;
+void log_early_setlevel(void)
+{
+ startup_log.level=message_level;
+}
void log_early_init(void)
{
logfile_file_init(&startup_log,stderr,"startup");
+ log_early_setlevel();
system_log=&startup_log.ops;;
}