在配置文件中添加参数
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
}
参考文档:
http://docs.mongodb.org/v2.4/tutorial/rotate-log-files/