chiark / gitweb /
changelog: document changes since 0.6.0
[secnet.git] / log.c
diff --git a/log.c b/log.c
index 84f5a86abd610240bff0031a805213dc2aaa4589..aca1b9b8e415ea6a86fc89e20a68144cbcd4467c 100644 (file)
--- a/log.c
+++ b/log.c
@@ -49,12 +49,7 @@ FORMAT(printf,2,0)
 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, ...)
@@ -167,6 +162,18 @@ void cfgfatal_maybefile(FILE *maybe_f, struct cloc loc, cstring_t facility,
     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;
@@ -460,7 +467,7 @@ static list_t *logfile_apply(closure_t *self, struct cloc loc, dict_t *context,
     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);
@@ -572,7 +579,7 @@ static list_t *syslog_apply(closure_t *self, struct cloc loc, dict_t *context,
     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);
@@ -664,9 +671,14 @@ void log_from_fd(int fd, cstring_t prefix, struct log_if *log)
 }
 
 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;;
 }