## Configure log rotations ##

[Author](authors.html): _name_ _[[contact]]_ _[[BSD_flavour]]_

[Reviewer](technical_reviewers.html): _name_ _[[contact]]_ _[[BSD_flavour]]_

[Reviewer](technical_reviewers.html): _name_ _[[contact]]_ _[[BSD_flavour]]_

----


### Concept ###

Understand that the system automatically maintains
many different logs.
Be able to configure log rotation by either time or size.

### Introduction ###

The `newsyslog` (((newsysylog))) tool is used to backup log files and then create new empty log files.
(TODO Footnote: System logging is covered in section [[Configure_system_logging]].)
It can compress log files and remove old log files.
By default, the BSD systems run "newsyslog" once every hour via cron.
(The cron scheduler is covered in section [[Configure_an_action_to_be_scheduled_by_cron(8)]].)
It can rotate logs (((logs))) when they reach a certain size or at a certain time (within an hour).
And it can optionally send a signal to a daemon after moving and creating a new log file.

TODO: explain "rotated" or "rotation"

Note that the newsyslog(8) implementations vary by BSD.

The newsyslog configuration is at `/etc/newsyslog.conf`.(((/etc/newsyslog.conf)))
The following is an example configuration:

""# logfilename      [owner:group] mode count size when  flags [/pid\_file] [sig\_num]
""/var/log/cron       root:wheel   600  3     100  *     Z
""/var/log/lpd-errs                644  7     10   *     Z
""/var/log/maillog                 640  7     *    @T00  Z
""/var/log/messages                644  5     100  *     Z
""/var/log/wtmp                    644  3     *    @01T05 B

TODO: explain the above. Count is the number of generations.
TODO: show examples of results (short directory listing)

### Examples ###

The following newsyslog example rotates a log file under a home directory.
It rotates the file whenever it gets to at least 500 Kilobytes
and keeps the most recent 52 compressed archives.
newsyslog creates a new log file owned by root (and doesn't add any log entry to it),
and then sends a USR1 signal to the process found in the listed PID file.

""# logfilename      [owner:group] mode count size when  flags [/pid\_file] [sig\_num]
""/home/foo/logs/access.log  root: 644  52    500  *     bz   /var/run/httpd.pid  USR1

### Practice Exercises ###


### More information ###

newsyslog(8), newsyslog.conf(5), syslog.conf(5)
