在配置文件中添加参数
logpath=/data/app_data/mongodb/log/mongodb.log logappend=true
Windows下只有这种日志轮转方式
> use admin;switched to db admin> db.runCommand({logRotate : 1}){ "ok" : 1 }
Linux下还可以通过设置定时任务每天凌晨轮转日志
0 0 * * * /bin/kill -SIGUSR1 `cat /data/app_data/mongodb/data/mongod.pid`
查看日志
-rw-r--r-- 1 mongod mongod 13M Apr 1 20:47 mongodb.log-rw-r--r-- 1 mongod mongod 332K Dec 20 2013 mongodb.log.2013-12-19T16-00-01-rw-r--r-- 1 mongod mongod 1.7M Dec 21 2013 mongodb.log.2013-12-20T16-00-01-rw-r--r-- 1 mongod mongod 1.9M Dec 22 2013 mongodb.log.2013-12-21T16-00-01-rw-r--r-- 1 mongod mongod 2.3M Dec 23 2013 mongodb.log.2013-12-22T16-00-02-rw-r--r-- 1 mongod mongod 2.3M Dec 24 2013 mongodb.log.2013-12-23T16-00-01-rw-r--r-- 1 mongod mongod 2.7M Dec 25 2013 mongodb.log.2013-12-24T16-00-01-rw-r--r-- 1 mongod mongod 2.5M Dec 26 2013 mongodb.log.2013-12-25T16-00-01
轮转后的日志会以UTC时间戳为文件名后缀。与本地时间有一定的时差。例如这里的16就应该是北京时间的16+8=24即0点
可以使用系统自带的日志轮转工具logrotate对MongoDB日志进行轮转
/etc/logrotate.d/mongodb
/data/app_data/mongodb/log/*.log { daily rotate 10 copytruncate delaycompress compress notifempty missingok postrotate /bin/kill -USR1 `cat /data/app_data/mongodb/data/mongod.pid 2>/dev/null` 2> /dev/null|| true endscript}
参考文档: