前言
日志是MongoDB中一个非常重要的功能,他保证了数据库服务器在意外断电、自然灾害下数据的完整性 。MongoDB日志记录了数据库实例的健康状态、语句的执行状况、资源的消耗情况,所以日志对于分析数据库服务和性能优化很有帮助。
因此,很有必要花费一些时间来学习解析一下MongoDB的日志文件。
下面话不多说了,来一起看看详细的介绍吧。
日志信息的格式
<日志时间> <严重级别> <信息所属分类> [<内容>] <消息>
例如 :
2014-11-03T18:28:32.450-0500 I NETWORK [initandlisten] waiting for connections on port 27017
日志信息严重级别
级别 |
级别描述 |
F |
Fatal |
E |
Error |
W |
Warning |
I |
Informational, for Verbosity Level of 0 |
D |
Debug, for All Verbosity Levels > 0 |
信息所属分类
日志分类 |
英文 |
分类描述 |
登入信息 |
ACCESS |
登入访问相关的信息,例如登录验证情况。 |
命令信息 |
COMMAND |
数据库执行命令相关信息,例如,查询。 |
控制管理信息 |
CONTROL |
记录控制管理相关的信息,例如数据库初始化。 |
FTDC信息 |
FTDC(full-time diagnostic data ) |
全程检测数据信息,例如Server的状态统计信息。 |
索引信息 |
INDEX |
索引相关信息,例如索引的创建过程信息。 |
网络信息 |
NETWORK |
网络相关信息,例如网络连接信息。 |
查询信息 |
QUERY |
查询相关信息,例如查询计划信息。 |
副本集信息 |
REPL |
副本集相关信息,例如副本集初始过程、心跳、回滚等信息 |
分片信息 |
SHARDING |
分片相关信息,例如mongos的启动信息 |
存储信息 |
STORAGE |
存储相关信息,例如将 storage 层的数据刷入磁盘的信息。 |
还原信息 |
RECOVERY |
还原活动相关的信息 |
日志信息 |
JOURNAL |
日志相关的信息 |
写操作信息 |
WRITE |
写操作相关的信息,例如更新(update)的命令。 |
查询日志详细等级
MongoDB将日志详细等级划分为0~5
1. 0 是MongoDB日志的的默认级别,会包含 Informational 类信息。
2. 1~5 是调试级别,会记录客户端所有的完整请求
查询日志详细等级的命令。
db.getLogComponents()
修改日志详细等级
修改日志详细等级的途径有两种。
第一种 设置logComponentVerbosity 参数来进行修改。
另外还需说明的一点是日志分类还可以进一步细化,
例如:将systemLog 整体设置为1,其中 query 子项 和storage子项 设置为2,而子项storage的子项设置journal再设置为1。
修改的具体命令为:
db.adminCommand( { setParameter: 1, logComponentVerbosity: { verbosity: 1, query: { verbosity: 2 }, storage: { verbosity: 2, journal: { verbosity: 1 } } } } )
第二种方法,通过 db.setLogLevel()进行修改。
此种方法多是针对单一的日志类别进行修改。另外还有一点需要特别指出,我们有时候会通过db.getLogComponents() 看到级别日志级别为-1,其实-1,代表和其父类别的等级一样。
例如,我们将query类别的日志的详细级别设置为父类( systemLog)的日志详细级别,可以执行以下命令:
db.setLogLevel(-1, "query")
上面的两种方法都是修改,那么能否初始化是就配置呢?其实是可以的,我们只需要在初始配置文件中加入相应的参数就可以了,在此不再展开。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。
本文向大家介绍深入分析Mongodb数据的导入导出,包括了深入分析Mongodb数据的导入导出的使用技巧和注意事项,需要的朋友参考一下 一、Mongodb导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。 mongoexport具体用法 参数说明
本文向大家介绍深入讲解MongoDB的慢日志查询(profile),包括了深入讲解MongoDB的慢日志查询(profile)的使用技巧和注意事项,需要的朋友参考一下 前言 说到MongoDB的慢日志分析,就不得不提到profile分析器,profile分析器将记录的慢日志写到system.profile集合下,这个集合是一个固定集合。我们可以通过对这个集合的查询,来了解当前的慢日志,进而对数据库
主要内容:一、数据库,二、日志落盘,三、源码分析,四、总结一、数据库 数据库,本身有一个库,那应该是有自己的库的管理方式,这种传统的关系型数据库是如何把数据存储到硬盘上呢?文件的组织形式有哪些呢?MySql数据库一般要有两类文件落盘,一类是日志型文件,一类是真正的数据文件,在数据文件中,又包含索引数据和真实数据。这也是经常提到聚簇索引和非聚簇索引的主要原因,因为这两种索引,在硬盘中的存储方式是不一样的。前者本身就是数据的顺序集合,后者是需要二次再通过指针
本文向大家介绍mysql二进制日志文件恢复数据库,包括了mysql二进制日志文件恢复数据库的使用技巧和注意事项,需要的朋友参考一下 二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库
本文向大家介绍SQL SERVER 2008数据库日志文件收缩的方法,包括了SQL SERVER 2008数据库日志文件收缩的方法的使用技巧和注意事项,需要的朋友参考一下 最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问。 网上类似的方法也很多,但不可行,如下是我实践过,可行的,将日志文件收缩至任意指定大小的方法: 第一步: 在S
问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):