glog log rotate not working correctly

1,379 views
Skip to first unread message

Ramkumar Gowrishankar

unread,
Sep 29, 2016, 12:51:10 AM9/29/16
to golan...@googlegroups.com
Hi,

I am using the glog to log for my golang program and I have changed the package to limit maximum file size to 250MB by changing this line (https://github.com/golang/glog/blob/master/glog_file.go#L34).

The log rotate seems to be working as intended and the file size gets limited to 250MB but somehow there seems to be a bug in file close/open and the log directory keeps filling up until it runs out of space. df -h command shows that the used space is close to 100% but if I look using du -h or ls and add up the file sizes it is not close to 100%. My platform is CentOS7.

Thanks,

Ramkumar

Dave Cheney

unread,
Sep 29, 2016, 3:08:21 AM9/29/16
to golang-nuts
This is usually caused by the process writing to a log file that has been deleted. This is a very common bug with programs that rotate their own logs and a major reason why 12 factor apps recommend that log rotation be down by an external program.

Have a look in /proc/yourprocess/fd with ls -al. If there is an open file pointing to a log file with the suffix (deleted), that's the problem.

Dave

ramkumar.g...@gmail.com

unread,
Sep 29, 2016, 8:37:47 AM9/29/16
to golang-nuts
So it looks like a bug in the glog library. Anyway to file a bug against it?

Dave Cheney

unread,
Sep 29, 2016, 8:39:50 AM9/29/16
to golang-nuts, ramkumar.g...@gmail.com
Did you find the open deleted file in /proc/.../fds ?

alexg...@gmail.com

unread,
Sep 20, 2017, 9:01:26 PM9/20/17
to golang-nuts
glog library does not delete log files. It only creates new log files.

Btw, not sure if you actually modified that "line", but note that you only need to modify the variable.

Here's a rough example

)

func main() {
  glog.MaxFileSize = 250MB

Tad Vizbaras

unread,
Sep 21, 2017, 9:30:12 AM9/21/17
to golang-nuts
There is also library called lumberjack. It integrates nicely with standard library.

quote: `Lumberjack is a Go package for writing logs to rolling files.`



Reply all
Reply to author
Forward
0 new messages