Escribiendo en archivos de registro separados
Estoy tratando de escribir diferentes tipos de entradas en archivos de registro separados de una aplicación. Por la razón que estoy tratando de averiguar, todas las entradas aparecen en todos los archivos de registro. ¿Qué podría estar haciendo mal?
Solo quiero que las entradas críticas se incluyan en /tmp/log/critical.log y que las entradas de depuración se introduzcan en el archivo /tmp/log/debug.log, mientras que todas las entidades pueden acceder al archivo de registro /tmp/log/all.log
Las siguientes son las entradas en el archivo /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
Mi programa c de muestra escribiendo entradas de 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();
}