Schreiben in separate Protokolldateien

Ich versuche, verschiedene Arten von Einträgen aus einer Anwendung in separate Protokolldateien zu schreiben. Aus einem Grund, den ich herauszufinden versuche, erscheinen alle Einträge in allen Protokolldateien. Was könnte ich falsch machen?

Ich möchte, dass nur kritische Einträge in /tmp/log/critical.log und Debug-Einträge in die Datei /tmp/log/debug.log geschrieben werden, während alle Eingaben in die Protokolldatei /tmp/log/all.log geschrieben werden können.

Es folgen Einträge in der Datei /etc/rsyslog.conf

local0.*                                                /tmp/log/all.log
local0.alert                                            /tmp/log/alert.log
local0.crit                                             /tmp/log/critical.log
local0.debug                                            /tmp/log/debug.log
local0.emerg                                            /tmp/log/emergency.log
local0.err                                              /tmp/log/error.log
local0.info                                             /tmp/log/info.log
local0.notice                                           /tmp/log/notice.log
local0.warning                                          /tmp/log/warning.log

Mein Beispielprogramm c schreibt Syslog-Einträge ...

#include<syslog.h>

main()
{
    openlog("myapp",LOG_CONS|LOG_PID|LOG_NDELAY,LOG_LOCAL0);

    syslog(LOG_EMERG|LOG_LOCAL0,"Emergency",getuid());
    syslog(LOG_ALERT|LOG_LOCAL0,"Alert",getuid());
    syslog(LOG_CRIT|LOG_LOCAL0,"Critical",getuid());
    syslog(LOG_ERR|LOG_LOCAL0,"Error",getuid());
    syslog(LOG_WARNING|LOG_LOCAL0,"Warning",getuid());
    syslog(LOG_NOTICE|LOG_LOCAL0,"Notice",getuid());
    syslog(LOG_INFO|LOG_LOCAL0,"Information",getuid());
    syslog(LOG_DEBUG|LOG_LOCAL0,"Debug",getuid());

    closelog();
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage