Navigation
This version of the documentation is archived and no longer supported.

Rotate Log Files

On this page

Overview

Log rotation archives the current log file and starts a new one. Specifically, log rotation renames the current log file by appending the filename with a timestamp, [1] opens a new log file, and finally closes the old log. MongoDB will only rotate logs, when you use the logRotate command, or issue the process a SIGUSR1 signal as described in this procedure.

See also

For information on logging, see the Process Logging section.

Procedure

The following steps create and rotate a log file:

  1. Start a mongod with verbose logging, with appending enabled, and with the following log file:

    mongod -v --logpath /var/log/mongodb/server1.log --logappend
    
  2. In a separate terminal, list the matching files:

    ls /var/log/mongodb/server1.log*
    

    For results, you get:

    server1.log
    
  3. Rotate the log file using one of the following methods.

    • From the mongo shell, issue the logRotate command from the admin database:

      use admin
      db.runCommand( { logRotate : 1 } )
      

      This is the only available method to rotate log files on Windows systems.

    • From the UNIX shell, rotate logs for a single process by issuing the following command:

      kill -SIGUSR1 <mongod process id>
      
    • From the UNIX shell, rotate logs for all mongod processes on a machine by issuing the following command:

      killall -SIGUSR1 mongod
      
  4. List the matching files again:

    ls /var/log/mongodb/server1.log*
    

    For results you get something similar to the following. The timestamps will be different.

    server1.log  server1.log.2011-11-24T23-30-00
    

    The example results indicate a log rotation performed at exactly 11:30 pm on November 24th, 2011 UTC, which is the local time offset by the local time zone. The original log file is the one with the timestamp. The new log is server1.log file.

    If you issue a second logRotate command an hour later, then an additional file would appear when listing matching files, as in the following example:

    server1.log  server1.log.2011-11-24T23-30-00  server1.log.2011-11-25T00-30-00
    

    This operation does not modify the server1.log.2011-11-24T23-30-00 file created earlier, while server1.log.2011-11-25T00-30-00 is the previous server1.log file, renamed. server1.log is a new, empty file that receives all new log output.

[1]MongoDB renders this timestamp in UTC (GMT) and formatted as ISODate.