dark势力 发表于 2017-5-8 14:50:33

linux中如何限制日志文件大小?

某个程序不断把日志写入到一个文件中,有什么办法可以限制这个文件的大小?

dark势力 发表于 2017-5-8 14:51:23

比如,有个a.log 的日志文件不断变大,我要限制其最大为1GB,当超过1GB时,自动将旧的内容覆盖。保证该文件最大大小一直为1GB。

    请问如何实现?

lumber2388779 发表于 2017-5-8 22:08:25

先用r打开文件后使用file.seek(0, 2)将文件指针指向最后然后使用file.tell()获得当前文件位置,就是文件大小的字节数,然后跟1G大小进行比较,如果超过就关闭文件,以w+方式重新打开就能复写文件

dark势力 发表于 2017-5-9 18:14:53

不好意思,回复的晚了。指针这方面都不懂哎,晚上我回去操作试一下{:10_264:}

dark势力 发表于 2017-5-9 18:20:36

不过麻烦能讲的稍微详细点吗,具体如何操作之类的? 这个指针操作太高阶,我不是很明白,有劳大神{:10_281:}

dark势力 发表于 2017-5-9 18:22:27

lumber2388779 发表于 2017-5-8 22:08
先用r打开文件后使用file.seek(0, 2)将文件指针指向最后然后使用file.tell()获得当前文件位置,就是文件大小 ...


不过麻烦能讲的稍微详细点吗,具体如何操作之类的? 这个指针操作太高阶,我不是很明白,有劳大神{:10_297:}

lumber2388779 发表于 2017-5-9 21:42:41

dark势力 发表于 2017-5-9 18:22
不过麻烦能讲的稍微详细点吗,具体如何操作之类的? 这个指针操作太高阶,我不是很明白,有劳大神{:10_ ...

- -额 混淆概念了 指针只有C语言才有,就是先用可读方式打开,然后用file.seek(0, 2)这个方法将当前文件位置定位到文件尾部,然后用file.tell()获取当前位置,这个获取回来的位置就是整个文件的字节数,然后就与你要比较的大小,进行判断
建议自己写一下代码更好理解,写完发出来不懂我可以跟你讲一下

dark势力 发表于 2017-5-11 14:16:29

lumber2388779 发表于 2017-5-9 21:42
- -额 混淆概念了 指针只有C语言才有,就是先用可读方式打开,然后用file.seek(0, 2)这个方法将当前文件位 ...

用日志切割达到了目的。感觉更方便一点。谢谢大神~

704008971 发表于 2017-9-11 03:46:11

用linux日志轮替 http://www.vavlv.com/read-1441   可以设定日志的大小,还有日志保存的时间,日志分割多少份
页: [1]
查看完整版本: linux中如何限制日志文件大小?