- Administration >
- Configuration and Maintenance >
- Rotate Log Files
Rotate Log Files¶
On this page
Overview¶
When used with the --logpath option or systemLog.path
setting, mongod and mongos instances
report a live account of all activity and operations to a log file.
When reporting activity data to a log file, by default, MongoDB only
rotates logs in response to the logRotate command, or when
the mongod or mongos process receives a
SIGUSR1 signal from the operating system.
MongoDB’s standard log rotation approach archives the current
log file and starts a new one. To do this, the mongod or
mongos instance renames the current log file by appending
a UTC timestamp to the filename, in ISODate format. It then
opens a new log file, closes the old log file, and sends all new log
entries to the new log file.
You can also configure MongoDB to support the Linux/Unix logrotate
utility by setting systemLog.logRotate or
--logRotate to reopen. With reopen, mongod
or mongos closes the log file, and
then reopens a log file with the same name, expecting that another
process renamed the file prior to rotation.
Finally, you can configure mongod to send log data to the
syslog using the --syslog option. In
this case, you can take advantage of alternate log rotation tools.
To rotate the log files, you must perform one of these steps:
- Send a
SIGUSR1signal to themongodormongosprocess. - Run the MongoDB
logRotatecommand. - Run the Linux/Unix
logrotateutility.
See the examples later on this page.
See also
For information on logging, see the Process Logging section.
Default Log Rotation Behavior¶
By default, MongoDB uses the
--logRotate rename behavior.
With rename, mongod or
mongos renames the current log file by appending a UTC
timestamp to the filename, opens a new log file, closes the old log
file, and sends all new log entries to the new log file.
Start a mongod instance.¶
You can also explicitly specify --logRotate rename.
List the log files¶
In a separate terminal, list the matching files:
The results should include one log file, server1.log.
View the new log files¶
List the new log files to view the newly-created log:
There should be two log files listed: server1.log, which is the
log file that mongod or mongos made when it
reopened the log file, and server1.log.<timestamp>, the renamed
original log file.
Rotating log files does not modify the “old” rotated log files. When
you rotate a log, you rename the server1.log file to include
the timestamp, and a new, empty server1.log file receives all
new log input.
Log Rotation with --logRotate reopen¶
Log rotation with --logRotate reopen closes and opens
the log file following the typical Linux/Unix log rotate behavior.
Start a mongod instance, specifying the reopen --logRotate behavior.¶
You must use the --logappend option with
--logRotate reopen.
List the log files¶
In a separate terminal, list the matching files:
The results should include one log file, server1.log.
Syslog Log Rotation¶
With syslog log rotation, mongod sends log data to the
syslog rather than writing it to a file.
Starting in version 4.2, MongoDB includes the component in its log messages to syslog.
Start a mongod instance with the --syslog option¶
Do not include --logpath. Since --syslog tells
mongod to send log data to the syslog, specifying a
--logpath will causes an error.
To specify the facility level used when logging messages to the syslog,
use the --syslogFacility option or
systemLog.syslogFacility configuration setting.
Rotate the log.¶
Store and rotate the log output using your systems default log rotation mechanism.