Docs 主页 → 开发应用程序 → MongoDB Manual
logRotate
定义
logRotate
logRotate
命令是一条管理命令,允许您轮换 MongoDB 服务器日志和/或审核日志,以防止单个日志文件占用过多磁盘空间。
语法
该命令具有以下语法:
db.adminCommand( { logRotate: <integer or string>, comment: <string> } )
命令字段
该命令接受以下字段:
字段 | 类型 | 说明 |
---|---|---|
logRotate | 整数或字符串 | 要轮换的一个或多个日志,按以下方式进行:
|
comment | 字符串 | 可选。日志轮换时服务器记录到日志文件和审核文件的消息。 |
您也可以通过向 mongod
进程发送 SIGUSR1
信号来轮换日志。
例如,如果正在运行的 mongod
实例的进程 ID (PID) 为 2200
,则以下命令在 Linux 上为该实例轮转日志文件:
kill -SIGUSR1 2200
限制
您的
mongod
实例需要使用--logpath [file]
选项运行才能使用logRotate
必须启用审核才能轮换审核日志。
行为
systemLog.logRotate
设置或--logRotate
选项指定logRotate
的行为。
当systemLog.logRotate
或--logRotate
设置为rename
时, logRotate
会通过将当前时间戳附加到文件名来重命名现有日志文件。附加的时间戳采用以下形式:
<YYYY>-<mm>-<DD>T<HH>-<MM>-<SS>
然后, logRotate
会创建一个新的日志文件,其名称与最初由systemLog.path
设置为mongod
或mongos
指定的名称相同。
当systemLog.logRotate
或--logRotate
设置为reopen
时, logRotate
遵循典型的 Linux/Unix 行为,只需关闭日志文件,然后重新打开具有相同名称的日志文件即可。使用reopen
时, mongod
期望另一个进程在轮换之前重命名该文件,并且重新打开会创建一个新文件。
举例
下面的示例同时轮换服务器日志和审核日志:
db.adminCommand( { logRotate: 1 } )
以下示例仅轮换审核日志,并在轮换时向日志文件提供自定义消息:
db.adminCommand( { logRotate: "audit", comment: "Rotating audit log" } )