Pisanie w osobnych plikach dziennika
Próbuję pisać różne typy wpisów w oddzielnych plikach dziennika z aplikacji. Z powodu, którego próbuję się dowiedzieć, wszystkie wpisy pojawiają się we wszystkich plikach dziennika. Co mogłem zrobić źle?
Chcę, aby tylko krytyczne wpisy były zapisywane w /tmp/log/critical.log i wpisach debugowania, aby przejść do pliku /tmp/log/debug.log, podczas gdy wszystkie enteries mogą przejść do pliku dziennika /tmp/log/all.log.
Poniżej znajdują się wpisy w pliku /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
Mój przykładowy program c pisze wpisy syslog ...
#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();
}