我有一个在追加模式下打开文件的过程。在这种情况下,它是一个日志文件。样例代码:
int main(int argc, char **argv) { FILE *f; f = fopen("log.txt", "a"); fprintf(f, "log entry line"); fclose(f); }
两个问题:
我正在考虑以最简单的方式来执行此操作,或者考虑使用zeromq通过管道将日志条目泵送到日志收集器。
我确实考虑过syslog,但是我真的不希望该软件有任何平台依赖性。
此btw的默认平台是Linux。
您肯定会具有平台依赖性,因为Windows无法处理附加到同一文件的多个进程。
关于同步问题,我认为行缓冲输出/应该/可以在大多数时间内为您节省时间,也就是说,根据我的基于shell的简短测试,应该完整保留99.99%以上的短日志行,但并非每次都可以。显式语义绝对是可取的,并且由于无论如何您将无法独立编写此hack系统,因此我建议使用syslog方法。