因此,我有一个在Linux系统上运行的守护程序,我想要记录其活动:日志。问题是,完成此任务的“最佳”方法是什么?
我的第一个想法是简单地打开一个文件并将其写入。
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);
用这种方式记录日志有天生的错误吗?有没有更好的方法,例如Linux内置的某些框架?
Unix长期以来一直使用一种称为syslog的特殊日志记录框架。输入您的外壳
man 3 syslog
您将获得C接口的帮助。
一些 例子
#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; }