Whats the best way to rotate nginx logfiles? In my opinion, I should create a file "nginx" in /etc/logrotate.d/ and fill it with the following code and do a /etc/init.d/syslog restart after that.

This would be my config (I havn't tested it yet):

 /usr/local/nginx/logs/*.log {
    #rotate the logfile(s) daily
    daily
    # adds extension like YYYYMMDD instead of simply adding a number
    dateext
    # If log file is missing, go on to next one without issuing an error msg
    missingok
    # Save logfiles for the last 49 days
    rotate 49
    # Old versions of log files are compressed with gzip
    compress
    # Postpone compression of the previous log file to the next rotation cycle
    delaycompress
    # Do not rotate the log if it is empty
    notifempty
    # create mode owner group
    create 644 nginx nginx
    #after logfile is rotated and nginx.pid exists, send the USR1 signal
    postrotate
       [ ! -f /usr/local/nginx/logs/nginx.pid ] || kill -USR1 `cat
       /usr/local/nginx/logs/nginx.pid`
    endscript
 }

I have both the access.log and error.log files in /usr/local/nginx/logs/ and want to rotate both daily. Can anyone please tell me if "dateext" is correct? I want the log filename to be something like "access.log-2010-12-04". One more thing: Can I do the log rotation every day on a specific time (e.g. 11 pm)? If so, how? Thanks.

link|improve this question
possible duplicate of nginx logrotate config – Chris S Nov 18 '11 at 22:55
feedback

migrated from stackoverflow.com Mar 16 '11 at 13:42

This question came from our site for professional and enthusiast programmers.

1 Answer

Check out cronolog, http://cronolog.org/ This should do what you need

link|improve this answer
Could you provide an example how to use cronolog with nginx? To me it seems as if the standard method (apache style) isn't working: access_log "| /usr/bin/cronolog /var/log/nginx/access-%Y%m%d.log" combined_host – Till Backhaus Nov 30 '11 at 10:31
Hi Tim, Please ask that as a new question and I am sure you will get an answer, thanks! – AliGibbs Dec 4 '11 at 18:16
Hi Ali, thanks for the comment. In the meantime I found out that using cronolog with high traffic websites is a bad idea because of the additional overhead: pjkh.com/articles/2007/03/15/nginx-and-cronolog . Now I'm feeding the log to cronosplit on a daily basis. – Till Backhaus Dec 6 '11 at 13:35
feedback

Your Answer

 
or
required, but never shown