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();
}