* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: log.c,v 1.33 2002/05/27 13:09:27 alex Exp $
+ * $Id: log.c,v 1.40 2002/10/09 16:53:02 alex Exp $
*
* log.c: Logging-Funktionen
*/
* landen z.B. alle Ausgaben von assert()-Aufrufen. */
/* Dateiname zusammen bauen */
- sprintf( Error_File, ERROR_DIR"/"PACKAGE"-%ld.err", (INT32)getpid( ));
+ sprintf( Error_File, "%s/%s-%ld.err", ERROR_DIR, PACKAGE, (LONG)getpid( ));
/* stderr umlenken */
fflush( stderr );
Log_Exit( VOID )
{
/* Good Bye! */
- Log( LOG_NOTICE, PACKAGE" done.");
+ if( NGIRCd_Restart ) Log( LOG_NOTICE, "%s done (restarting).", PACKAGE );
+ else Log( LOG_NOTICE, "%s done.", PACKAGE );
/* Error-File (stderr) loeschen */
if( unlink( Error_File ) != 0 ) Log( LOG_ERR, "Can't delete \"%s\": %s", Error_File, strerror( errno ));
} /* Log_Exit */
+#ifdef PROTOTYPES
GLOBAL VOID
Log( INT Level, CONST CHAR *Format, ... )
+#else
+GLOBAL VOID
+Log( Level, Format, va_alist )
+INT Level;
+CONST CHAR *Format;
+va_dcl
+#endif
{
/* Eintrag in Logfile(s) schreiben */
#endif
/* String mit variablen Argumenten zusammenbauen ... */
+#ifdef PROTOTYPES
va_start( ap, Format );
+#else
+ va_start( ap );
+#endif
vsnprintf( msg, MAX_LOG_MSG_LEN, Format, ap );
va_end( ap );
if( NGIRCd_NoDaemon )
{
/* auf Konsole ausgeben */
- printf( "[%d] %s\n", Level, msg );
+ fprintf( stdout, "[%d] %s\n", Level, msg );
+ fflush( stdout );
}
+#ifdef USE_SYSLOG
+ else
+ {
+ /* Syslog */
+ syslog( Level, "%s", msg );
+ }
+#endif
if( Level <= LOG_CRIT )
{
fflush( stderr );
}
-#ifdef USE_SYSLOG
- /* Syslog */
- syslog( Level, msg );
-#endif
-
if( snotice )
{
/* NOTICE an lokale User mit "s"-Mode */
} /* Log_Exit_Resolver */
+#ifdef PROTOTYPES
GLOBAL VOID
Log_Resolver( CONST INT Level, CONST CHAR *Format, ... )
+#else
+GLOBAL VOID
+Log_Resolver( Level, Format, va_alist )
+CONST INT Level;
+CONST CHAR *Format;
+va_dcl
+#endif
{
/* Eintrag des Resolver in Logfile(s) schreiben */
assert( Format != NULL );
+ if( NGIRCd_NoDaemon ) return;
+
#ifdef DEBUG
if(( Level == LOG_DEBUG ) && ( ! NGIRCd_Debug )) return;
#else
#endif
/* String mit variablen Argumenten zusammenbauen ... */
+#ifdef PROTOTYPES
va_start( ap, Format );
+#else
+ va_start( ap );
+#endif
vsnprintf( msg, MAX_LOG_MSG_LEN, Format, ap );
va_end( ap );
c = Client_First( );
while( c )
{
- if(( Client_Conn( c ) > NONE ) && ( Client_HasMode( c, 's' ))) IRC_WriteStrClient( c, "NOTICE %s :%s", Client_ThisServer( ), Msg );
+ if(( Client_Conn( c ) > NONE ) && ( Client_HasMode( c, 's' ))) IRC_WriteStrClient( c, "NOTICE %s :%s%s", Client_ThisServer( ), NOTICE_TXTPREFIX, Msg );
c = Client_Next( c );
}
} /* Wall_ServerNotice */