从MongoDB 3.0开始,MongoDB 在输出到控制台或日志文件(即不输出到[1])时,会为每个日志消息包括严重性级别和组件。syslog
日志消息的格式为:
例如:
| [1] | Syslog消息遵循标准的syslog消息格式。从4.2版开始,MongoDB 在其到的日志消息中包括该组件syslog。 |
当登录到控制台或一个日志文件[2] ,为对的默认格式<timestamp>是iso8601-local。要修改时间戳记格式,请使用--timeStampFormat运行时选项或
systemLog.timeStampFormat设置。
| [2] | 如果登录到syslog,syslog守护程序将在记录消息时而不是MongoDB发出消息时生成时间戳。这会导致误导日志条目的时间戳,尤其是在系统负载沉重的情况下。 |
下表列出了与每个日志消息关联的严重性级别:
| 水平 | 描述 |
|---|---|
F |
致命 |
E |
错误 |
W |
警告 |
I |
信息性,针对以下级别 0 |
D[1-5] |
调试,适用于所有详细级别> 从4.2版开始,MongoDB记录调试详细级别。例如,如果详细级别为2,则MongoDB日志 在以前的版本中,MongoDB日志消息仅为 |
您可以指定各个组件的详细程度,以确定MongoDB输出的Informational和Debug消息的数量。[3]
要设置详细级别,请参阅配置日志详细级别。
3.4版的新功能。
当您可以将服务器事件与特定的客户端请求明确匹配时,客户端应用程序的调试和性能监视将变得更加容易。考虑到这一点,最新的MongoDB
驱动程序和客户端应用程序(包括mongo外壳程序)能够在连接到服务器时发送标识信息。建立连接后,除非断开连接并重新建立连接,否则客户端不会再次发送标识信息。
所包含的确切字段因客户而异。以下是样本客户数据文档:
当副本集的辅助成员 启动与主要对象的连接时,它们将发送相似的数据。典型的连接文档如下:
有关客户信息和必填字段的完整说明,请参阅 MongoDB握手规范。
日志消息现在包括组件,提供了消息的功能分类:
ACCESS¶与访问控制有关的消息,例如身份验证。要指定ACCESS组件的日志级别,请使用该
systemLog.component.accessControl.verbosity设置。
COMMAND¶与数据库命令有关的消息,例如count。要指定COMMAND组件的日志级别
,请使用该
systemLog.component.command.verbosity设置。
CONTROL¶与控件活动有关的消息,例如初始化。要指定CONTROL组件的日志级别,请使用该
systemLog.component.control.verbosity设置。
ELECTION¶专门与副本集选择有关的消息。要指定ELECTION组件的日志级别,请设置
systemLog.component.replication.election.verbosity
参数。
REPL是的父组件ELECTION。如果
systemLog.component.replication.election.verbosity未设置,则MongoDB REPL对ELECTION组件使用详细级别
。
FTDC¶3.2版中的新功能。
与诊断数据收集机制有关的消息,例如服务器统计信息和状态消息。要指定FTDC组件的日志级别
,请使用该
systemLog.component.ftdc.verbosity设置。
GEO¶与解析地理空间形状有关的消息,例如验证GeoJSON形状。要指定GEO组件的日志级别
,请设置
systemLog.component.geo.verbosity参数。
INDEX¶与索引操作有关的消息,例如创建索引。要指定INDEX组件的日志级别
,请设置
systemLog.component.index.verbosity参数。
INITSYNC¶与初始同步操作有关的消息。要指定INITSYNC组件的日志级别,请设置
systemLog.component.replication.initialSync.verbosity
参数。
REPL是的父组件INITSYNC。如果
systemLog.component.replication.initialSync.verbosity未设置,则MongoDB REPL对INITSYNC组件使用详细级别
。
NETWORK¶与网络活动有关的消息,例如接受连接。要指定NETWORK
组件的日志级别,请设置
systemLog.component.network.verbosity参数。
QUERY¶与查询相关的消息,包括查询计划程序活动。要指定QUERY组件的日志级别,请设置
systemLog.component.query.verbosity参数。
REPL¶与副本集相关的消息,例如初始同步,心跳,稳定状态复制和回滚。[3]要指定REPL组件的日志级别,请设置
systemLog.component.replication.verbosity参数。
REPL_HB¶专门与副本集心跳有关的消息。要指定REPL_HB组件的日志级别,请设置
systemLog.component.replication.heartbeats.verbosity
参数。
REPL是的父组件REPL_HB。如果
systemLog.component.replication.heartbeats.verbosity未设置,则MongoDB REPL对REPL_HB组件使用详细级别
。
ROLLBACK¶与回滚操作有关的消息。要指定ROLLBACK组件的日志级别
,请设置
systemLog.component.replication.rollback.verbosity
参数。
REPL是的父组件ROLLBACK。如果
systemLog.component.replication.rollback.verbosity未设置,则MongoDB REPL对ROLLBACK组件使用详细级别
。
SHARDING¶与分片活动有关的消息,例如的启动mongos。要指定SHARDING
组件的日志级别,请使用该
systemLog.component.sharding.verbosity设置。
STORAGE¶与存储活动有关的消息,例如fsync命令中涉及的进程。要指定STORAGE组件的日志级别
,请使用该
systemLog.component.storage.verbosity设置。
RECOVERY¶与恢复活动有关的消息。要指定RECOVERY组件的日志级别
,请使用该
systemLog.component.storage.recovery.verbosity设置。
JOURNAL¶与日记活动特别相关的消息。要指定JOURNAL组件的日志级别,请使用该
systemLog.component.storage.journal.verbosity设置。
STORAGE是的父组件JOURNAL。如果
systemLog.component.storage.journal.verbosity未设置,则MongoDB STORAGE对JOURNAL组件使用详细级别
。
TXN¶与多文档交易有关的消息。要指定TXN
组件的日志级别,请使用该
systemLog.component.transaction.verbosity设置。
WRITE¶与写操作有关的消息,例如update
命令。要指定WRITE组件的日志级别,请使用该systemLog.component.write.verbosity设置。
-¶与命名组件无关的消息。未命名的组件具有systemLog.verbosity设置中指定的默认日志级别
。该
systemLog.verbosity设置是命名和未命名组件的默认设置。
若要查看当前的详细程度,请使用
db.getLogComponents()方法。
您可以使用systemLog.verbosity和
systemLog.component.<name>.verbosity设置,
logComponentVerbosity参数,配置详细程度
。的
db.setLogLevel()方法。[3]
systemLog详细度设置¶要为所有组件配置默认日志级别,请使用该
systemLog.verbosity设置。要配置特定组件的级别,请使用systemLog.component.<name>.verbosity
设置。
例如,以下配置将
systemLog.verbosityto 1,
systemLog.component.query.verbosityto 2,
systemLog.component.storage.verbosityto 2以及
systemLog.component.storage.journal.verbosityto设置为1:
在配置上没有规定,所有组件具有
systemLog.verbosity的1。
logComponentVerbosity参数¶要设置logComponentVerbosity参数,请传递具有详细设置的文档以进行更改。
例如,以下将设置为,到,到和
到。default verbosity level1query2storage2storage.journal1
db.setLogLevel()¶使用该db.setLogLevel()方法来更新单个组件日志级别。对于组件,您可以指定0to的
详细级别5,也可以指定-1继承父级的详细级别。例如,以下将systemLog.component.query.verbosity其设置
为其父级详细程度(即默认详细程度):
| [3] | (1,2,3,4)在4.2版(在4.0.6也可启动)开始,副本集的次要构件现在
登录OPLOG条目称取比慢的操作阈值长适用。这些缓慢的oplog消息会在组件下的文本中记录为次要日志。这些慢操作日志条目仅取决于慢操作阈值。它们不取决于日志级别(系统级别或组件级别),配置级别或运行缓慢的采样率。探查器不会捕获缓慢的操作日志条目。diagnostic logREPLapplied
op: <oplog entry> took <num>ms |