Daemon-Protokollierung in Linux

Daemon-Protokollierung in Linux


Ich habe also einen Daemon, der auf einem Linux-System läuft, und ich möchte eine Aufzeichnung seiner Aktivitäten haben:ein Protokoll. Die Frage ist, was ist der "beste" Weg, dies zu erreichen?


Meine erste Idee ist, einfach eine Datei zu öffnen und darin zu schreiben.


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

Ist irgendetwas grundsätzlich falsch daran, auf diese Weise zu loggen? Gibt es einen besseren Weg, z. B. ein in Linux integriertes Framework?


Antworten:


Unix hat seit langem ein spezielles Logging-Framework namens syslog. Geben Sie Ihre Shell

ein
man 3 syslog

und Sie erhalten die Hilfe für die C-Schnittstelle dazu.


Einige Beispiele


#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;
}