我有一个记录其事件的程序。
我想实现一个日志文件机制,将日志文件保持在一定的大小,比如说 10 MB。
日志文件本身只保存程序执行的命令;这些命令的长度是可变的。
目前,该程序在 Windows 环境上运行,但我可能很快会将其移植到 UNIX。
我想出了两种管理日志文件的方法:
1.保留多个较小大小的文件,如果新命令超过当前文件长度,则将最旧的文件截断为零大小,然后开始在那里写入。
2. 在文件中保留一个 header ,其中包含有关文件中第一个命令以及文件中要写入的下一个位置的元数据。 而且我认为,每个命令都应该以这种方式保存有关其长度的元数据。
我的问题如下:
- 就效率而言,您会使用以下哪种方法?为什么?
- 是否有一个unix命令/函数可以轻松实现此目的?
非常感谢您的帮助,
没有。
最佳答案
在 UNIX/Linux 平台上有一个用于管理日志文件的 logrotate 程序。详细信息可以在这里找到: http://linuxcommand.org/man_pages/logrotate8.html
关于c - 管理日志文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720251/