Accesso al demone in Linux
Quindi ho un demone in esecuzione su un sistema Linux e voglio avere un record delle sue attività:un log. La domanda è:qual è il modo "migliore" per farlo?
La mia prima idea è semplicemente aprire un file e scriverci sopra.
FILE* log = fopen("logfile.log", "w");
/* daemon works...needs to write to log */
fprintf(log, "foo%s\n", (char*)bar);
/* ...all done, close the file */
fclose(log);
C'è qualcosa di intrinsecamente sbagliato nella registrazione in questo modo? C'è un modo migliore, come un framework integrato in Linux?
Risposte:
Unix dispone da molto tempo di uno speciale framework di registrazione chiamato syslog. Digita la tua shell
man 3 syslog
e riceverai l'aiuto per l'interfaccia C.
Alcuni esempi
#include <stdio.h>
#include <unistd.h>
#include <syslog.h>
int main(void) {
openlog("slog", LOG_PID|LOG_CONS, LOG_USER);
syslog(LOG_INFO, "A different kind of Hello world ... ");
closelog();
return 0;
}