]> jfr.im git - irc/quakenet/newserv.git/blobdiff - core/error.c
Port to git.
[irc/quakenet/newserv.git] / core / error.c
index 5e4e02c2b25f3e9c2b1524bc8eb41b395f0860d0..f7e554e3f8f97d356cd96460513c03d6d30408ad 100644 (file)
@@ -40,14 +40,23 @@ void reopen_logfile(int hooknum, void *arg) {
   if (logfile)
     fclose(logfile);
   
-  logfile=fopen("newserv.log","a");
+  logfile=fopen("logs/newserv.log","a");
 }
 
 void init_logfile() {
-  logfile=fopen("newserv.log","a");
+  logfile=fopen("logs/newserv.log","a");
+  if (!logfile) {
+    fprintf(stderr,"Failed to open logfile...\n");
+  }
   registerhook(HOOK_CORE_SIGUSR1, reopen_logfile);
 }
 
+void fini_logfile() {
+  deregisterhook(HOOK_CORE_SIGUSR1, reopen_logfile);
+  if (logfile)
+    fclose(logfile);
+}
+
 void Error(char *source, int severity, char *reason, ... ) {
   char buf[512];
   va_list va;
@@ -70,8 +79,12 @@ void Error(char *source, int severity, char *reason, ... ) {
     tm=gmtime(&now);
     strftime(timebuf,100,"%Y-%m-%d %H:%M:%S",tm);
     fprintf(stderr,"[%s] %s(%s): %s\n",timebuf,sevtostring(severity),source,buf);
-    if (logfile) 
+    fflush(stderr);
+
+    if (logfile)  {
       fprintf(logfile,"[%s] %s(%s): %s\n",timebuf,sevtostring(severity),source,buf);
+      fflush(logfile);
+    }
   }
   
   if (severity>=ERR_STOP) {