Apache HTTP Server Version 2.1

Apache > HTTP Server > Documentation > Version 2.1 > Programs

# rotatelogs - Piped logging program to rotate Apache logs

Available Languages: en | ko

`rotatelogs` is a simple program for use in conjunction with Apache's piped logfile feature. For example:

`CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common`

This creates the files /var/logs/logfile.nnnn where nnnn is the system time at which the log nominally starts (this time will always be a multiple of the rotation time, so you can synchronize cron scripts with it). At the end of each rotation time (here after 24 hours) a new log is started.

`CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common`

This configuration will rotate the logfile whenever it reaches a size of 5 megabytes.

`ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"`

This configuration will rotate the error logfile whenever it reaches a size of 5 megabytes, and the suffix to the logfile name will be created of the form `errorlog.YYYY-mm-dd-HH_MM_SS`.

## Synopsis

`rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]`

## Options

`-l`
  Causes the use of local time rather than GMT as the base for the interval. Note that using `-l` in an environment which changes the GMT offset (such as for BST or DST) can lead to unpredictable results!
`logfile`
  The path plus basename of the logfile. If logfile includes any '%' characters, it is treated as a format string for `strftime(3)`. Otherwise, the suffix .nnnnnnnnnn is automatically added and is the time in seconds. Both formats compute the start time from the beginning of the current period.
`rotationtime`
  The time between log file rotations in seconds.
`offset`
  The number of minutes offset from UTC. If omitted, zero is assumed and UTC is used. For example, to use local time in the zone UTC -5 hours, specify a value of `-300` for this argument.
`filesizeM`
  The maximum file size in megabytes followed by the letter `M` to specify size rather than time. Use this parameter in place of both rotationtime and offset.

## Portability

The following logfile format string substitutions should be supported by all `strftime(3)` implementations, see the `strftime(3)` man page for library-specific extensions.

`%A` | full weekday name (localized)
`%a` | 3-character weekday name (localized)
`%B` | full month name (localized)
`%b` | 3-character month name (localized)
`%c` | date and time (localized)
`%d` | 2-digit day of month
`%H` | 2-digit hour (24 hour clock)
`%I` | 2-digit hour (12 hour clock)
`%j` | 3-digit day of year
`%M` | 2-digit minute
`%m` | 2-digit month
`%p` | am/pm of 12 hour clock (localized)
`%S` | 2-digit second
`%U` | 2-digit week of year (Sunday first day of week)
`%W` | 2-digit week of year (Monday first day of week)
`%w` | 1-digit weekday (Sunday first day of week)
`%X` | time (localized)
`%x` | date (localized)
`%Y` | 4-digit year
`%y` | 2-digit year
`%Z` | time zone name
`%%` | literal `%'

Available Languages: en | ko