On this page本页内容
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 logrotation tools.
See also参阅
For information on logging, see the Process Logging section.
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.
mongod
instance.¶You can also explicitly specify --logRotate rename
.
In a separate terminal, list the matching files:
The results should include one log file, server1.log
.
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.
--logRotate reopen
¶Log rotation with --logRotate reopen
closes and opens the log file following the typical Linux/Unix log rotate behavior.
mongod
instance, specifying the reopen
--logRotate
behavior.¶You must use the --logappend
option with --logRotate reopen
.
In a separate terminal, list the matching files:
The results should include one log file, server1.log
.
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
.
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.
Store and rotate the log output using your systems default log rotation mechanism.
SIGUSR1
¶For Linux and Unix-based systems, you can use the SIGUSR1
signal to rotate the logs for a single process, as in the following: