5

我最近设置了以下 logrotate 作业:

/var/log/app.*.log {
    daily
    rotate 7
    copytruncate
    nocompress
    dateext
}

我发现当我去查看我的日志文件时,它们以一些二进制垃圾开始。我必须使用 --text grep 并在 vim 中加载文件需要永远。

这是预期的吗?我能做些什么来防止它吗?

注意:日志曾经是 utf8 文本文件。

4

1 回答 1

7

我有同样的问题。我发现问题是我输出到日志而不是附加。例如:

./应用程序 > 日志文件.log

什么时候应该:

./应用程序>>日志文件.log

发生的事情是 logrotate 上的 copytruncate 移动文件,然后输出似乎试图写入相同的位置并用大量的十六进制绒毛填充文件。这会将要检测的文件更改为二进制文件而不是文本文件。

更改为附加后,我再也没有遇到此问题。

于 2015-08-14T00:41:15.507 回答