c - 管理日志文件大小

标签 c file logging

我有一个记录其事件的程序。
我想实现一个日志文件机制,将日志文件保持在一定的大小,比如说 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/

相关文章:

c - 指向 const 的指针是否与 __restrict 具有相同的效果?

Java:如何从文件中获取缩略图

java - 如何不通过SLF4J直接使用Logback

grails - Groovy Slf4j 注释似乎会干扰 Grails 内置日志记录

C - strftime() 中不正确的指针/整数组合

java - 如何使用 JNI 从通过调用 API 启动的 Java 应用程序将数据发送回 C 应用程序?

c++ - 每微秒 1,000,000,000 次计算?

Java(安卓) IOException : Authority expected at index 7: http://

php - 如何使用 php 将选定复选框中的值保存到文件中?

.net - Log4Net 配置问题