Forum: NGINX by default does nginx just use a single log file?

Posted by S Ahmed (Guest)
on 2012-12-14 21:01
(Received via mailing list)
By default does nginx just keep appending to the same log file? (for 
both
access and error log files)

Is there a reason why there is no built in way of having it create a new
file per day/hour or something?  I guess the idea is to keep the feature
set very lean?
Posted by Francis Daly (Guest)
on 2012-12-14 21:21
(Received via mailing list)
On Fri, Dec 14, 2012 at 03:00:53PM -0500, S Ahmed wrote:

Hi there,

> By default does nginx just keep appending to the same log file? (for both
> access and error log files)

Yes. (Although the access log file name can include per-request 
variables.)

> Is there a reason why there is no built in way of having it create a new
> file per day/hour or something?  I guess the idea is to keep the feature
> set very lean?

Would you like it per day or per hour? Or every 4 MB, or every 1 million
lines? (Or every second Tuesday unless the moon is full?) There are too
many possibly-useful rules for anything built-in to satisfy everybody.

So nginx allows you to choose whatever combination of circumstances you
want, outside of nginx, and then provides a well-defined way for you to
induce a log file rotation.

http://nginx.org/en/docs/control.html#logs

That's my understanding, anyway.

  f
--
Francis Daly        francis@daoine.org
Posted by S Ahmed (Guest)
on 2012-12-14 22:11
(Received via mailing list)
only on a full moon, excluding leap years.  thank you and when can I 
expect
this feature? :)
Posted by m irya (Guest)
on 2012-12-14 22:43
(Received via mailing list)
Nginx doesn't include periodic log rotation functionality, the only 
thing
included is reopening the log files on USR1 signal, so one may rename 
the
current log file and then kill -USR1 `cat /var/run/nginx.pid` for nginx 
to
create a new log (see http://wiki.nginx.org/LogRotation ). External 
tools
may be used to do the actual period rotation, like in Linuxish world 
it's
normally done by logrotate (
http://manpages.ubuntu.com/manpages/lucid/man8/log... ) - in
recent Ubuntu versions it's already set up to rotate default nginx log
files.


2012/12/14 S Ahmed <sahmed1020@gmail.com>
Posted by S Ahmed (Guest)
on 2012-12-14 23:11
(Received via mailing list)
m irya,

Thanks.  I'm planning to run 12.04 ubuntu.

What exactly does 're-opening' of a log file mean?  Isn't it already 
open,
meaning nginx has it open and is appending to it?

So step by step, what is to be done?

1. kill -USR1
2. rename file?
3. kill -USR1 'cat /var/run/nginx.pid'
4. profit

?
Posted by Igor Sysoev (Guest)
on 2012-12-15 10:45
(Received via mailing list)
On Dec 15, 2012, at 2:10 , S Ahmed wrote:

> 3. kill -USR1 'cat /var/run/nginx.pid'
> 4. profit

1. rename file
2. kill -USR1 'cat /var/run/nginx.pid'
3. sleep 2
4. do everything with the file: gzipping, moving to other host, etc.
Posted by S Ahmed (Guest)
on 2012-12-15 19:20
(Received via mailing list)
I see, thanks.

So there is there a small window of time when the logs will not be 
written
or lost?
Posted by Igor Sysoev (Guest)
on 2012-12-15 21:32
(Received via mailing list)
No, logs are always written either in renamed old file or created newly 
by master process.
There is window between sending signal and reopening new files by worker 
processes.


--
Igor Sysoev
http://nginx.com/support.html
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.