禁用mongodb日志文件中的调试信息

时间:2015-08-20 14:38:26

标签: mongodb

为什么即使配置文件中没有这样的选项,调试信息也会被添加到日志文件中?

tail /var/log/mongodb/mongod.log

2015-08-20T19:46:58.496+0530 [initandlisten] connection accepted from 127.0.0.1:52564 #29378865 (229 connections now open)
2015-08-20T19:46:58.501+0530 [conn29378865] end connection 127.0.0.1:52564 (228 connections now open)
2015-08-20T19:46:58.502+0530 [conn29376536] query email3.email query: { messageguid: "c79d3312-8c39-4721-996e-310f6c810e69" } planSummary: COLLSCAN ntoskip:0 nscanned:85116 nscannedObjects:85116 keyUpdates:0 numYields:4 locks(micros) r:210752 nreturned:0 reslen:20 143ms
2015-08-20T19:46:58.735+0530 [conn29376536] query email3.email query: { messageguid: "10a01624-8a47-4ec4-a260-f11a83e7e195" } planSummary: COLLSCAN ntoskip:0 nscanned:85116 nscannedObjects:85116 keyUpdates:0 numYields:3 locks(micros) r:206983 nreturned:0 reslen:20 107ms
2015-08-20T19:46:58.878+0530 [conn29376536] query email3.email query: { messageguid: "edc0792f-8009-4b37-acdc-765308d87006" } planSummary: COLLSCAN ntoskip:0 nscanned:85116 nscannedObjects:85116 keyUpdates:0 numYields:2 locks(micros) r:225245 nreturned:0 reslen:20 140ms
2015-08-20T19:46:59.597+0530 [conn29376536] query email3.email query: { messageguid: "5cc70052-081b-49f0-8f39-fa32337508cc" } planSummary: COLLSCAN ntoskip:0 nscanned:85116 nscannedObjects:85116 keyUpdates:0 numYields:3 locks(micros) r:261268 nreturned:0 reslen:20 152ms
2015-08-20T19:46:59.792+0530 [conn29376536] query email3.email query: { messageguid: "c72608ff-0474-4ac3-a538-8426a229786d" } planSummary: COLLSCAN ntoskip:0 nscanned:85116 nscannedObjects:85116 keyUpdates:0 numYields:1 locks(micros) r:153281 nreturned:0 reslen:20 101ms
2015-08-20T19:46:59.924+0530 [conn29376536] query email3.email query: { messageguid: "<dc704c13-bcc4-4c37-a885-6c3a83fbfc80" } planSummary: COLLSCAN ntoskip:0 nscanned:85116 nscannedObjects:85116 keyUpdates:0 numYields:1 locks(micros) r:166382 nreturned:0 reslen:20 124ms

我已检查分析级别为0

> db.getProfilingLevel()
0

日志文件大小约为26 GB。 如果我截断这个文件,有什么我会错过的吗?

1 个答案:

答案 0 :(得分:1)

您可能需要检查组件日志记录级别,而不是数据库分析级别。

查看日志级别:

在mongodb shell中,运行db.getLogComponents()命令以获取分配给各个组件的日志记录级别的完整列表。您将获得类似于以下内容的输出:

{
    "verbosity" : 0,
    "accessControl" : {
        "verbosity" : -1
    },
    "command" : {
        "verbosity" : -1
    },
    "control" : {
        "verbosity" : -1
    },
    "geo" : {
        "verbosity" : -1
    },
    "index" : {
    "verbosity" : -1
    },
    "network" : {
        "verbosity" : -1
    },
    "query" : {
        "verbosity" : 2
    },
    "replication" : {
        "verbosity" : -1
    },
    "sharding" : {
        "verbosity" : -1
    },
    "storage" : {
        "verbosity" : -1,
        "journal" : {
            "verbosity" : -1
        }
    },
    "write" : {
        "verbosity" : -1
    }
}

如果您注意到日志中增加了查询详细程度,请查看上述query.verbosity输出中的db.getLogComponents值。如果该值大于 0 那么这将解释额外的详细程度。请注意,如果值为 -1 ,则该组件的日志记录级别默认为verbosity中指定的级别(系统日志记录级别默认值)。

在上面的示例中,query.verbosity级别为 2 ,而其他所有级别的值都为 -1 ,这意味着它们将默认为{ {1}} 0 的级别。

更改shell中的值:

如果要更改组件的日志记录级别,请通过传入级别和组件来使用verbosity命令。例如,以下内容将查询详细程度设置为默认值。

db.setLogLevel()

级别可以从最小详细的 0 到最详细的 5 。将级别设置为 -1 会将组件的详细程度默认为已建立的默认值。

<强>参考文献: