iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >详解MongoDB中的日志模块
  • 213
分享到

详解MongoDB中的日志模块

2024-04-02 19:04:59 213人浏览 安东尼
摘要

目录01 mongoDB日志组件种类及日志等级02 设置某个日志组件的日志级别方法一:db.setLogLevel()方法二:执行MonGoDB命令方法三:写入配置文件方法四:启动的

    今天简单研究了一下MongoDB里面的日志模块,写篇文章记录下。

01 MongoDB日志组件种类及日志等级

    每种数据库都有自己的日志模块,MongoDB也不例外,通常情况下,一个数据库的日志中,记录的是数据库的连接信息、存储信息、网络信息、索引信息以及查询信息等。从MongoDB3.0版本开始,MongoDB在日志中引入了日志等级和日志组件的概念,作为DBA来讲,关注的最多的应该是慢查询日志和连接日志。

    在MongoDB中,我们可以通过下面的命令,来获取所有的日志组件种类和对应的日志等级:

db.getLoGComponents()


PRIMARY> db.getLogComponents()
{
        "verbosity" : 0,
        "accessControl" : {
                "verbosity" : -1
        },
        "command" : {
                "verbosity" : -1
        },
        "control" : {
                "verbosity" : -1
        },
        "executor" : {
                "verbosity" : -1
        },
        "geo" : {
                "verbosity" : -1
        },
        "index" : {
                "verbosity" : -1
        },
        "network" : {
                "verbosity" : -1,
                "asio" : {
                        "verbosity" : -1
                },
                "bridge" : {
                        "verbosity" : -1
                }
        },
        "query" : {
                "verbosity" : -1
        },
        "replication" : {
                "verbosity" : -1
        },
        "sharding" : {
                "verbosity" : -1
        },
        "storage" : {
                "verbosity" : -1,
                "journal" : {
                        "verbosity" : -1
                }
        },
        "write" : {
                "verbosity" : -1
        },
        "ftdc" : {
                "verbosity" : -1
        }
}

     这里,我需要对执行的结果做个说明。

     首先来看返回结果中的总的verbosity,它的值是0。相应的取值还有1~5,数字越大,表示日志的详细程度越高,当这个值取到5的时候,MongoDB将会输出所有的调试debug日志,这个日志量将会非常大,一般情况下,默认的值是0.

     你可以留意到,这个执行结果中,包含很多子项目,例如command,control,executer,query,replication,sharding等,这些子项目也叫作日志组件,它代表这种类型的日志,例如sharding代表分片相关的日志。每个子项目里面也有一个verbosity,它代表的是当前的组件的日志等级,它的取值和上面的verbosity取值一样,可以取0,1,2,3,4,5,不同的是,它还可以取值为-1,代表继承父日志级别。

     在上面的例子中:

1、storage就是storage.joural的父级目录。

2、storage.journal的日志等级是-1,代表它继承storage的日志级别,

3、storage的日志级别也是-1,代表它继承全局的日志级别,

4、全局的日志级别是0,这就意味着:storage和storage.journal的日志级别也都是0

02 设置某个日志组件的日志级别

      为了获取更好的可读性,有时候会对单个日志组件的日志级别输出的更清晰一点,这种情况下,可以通过下面的命令来设置某个日志组件的日志等级:

方法一:db.setLogLevel()

db.setLogLevel()

它的常用方法如下:

db.setLogLevel(<level>,<component>)

其中,level是等级,可以取值0~5,component是组件名称。可以取accessControl、command、control、ftdc、 geo、index、network、query、replication、recovery、sharding、storage、storage.journal、transaction、write等。

方法二:执行MongoDB命令

这个命令只能设置单个组件的日志等级,如果想要一次性设置多个组件的日志等级,可以使用下面的方法:


db.adminCommand( {
   setParameter: 1,
   logComponentVerbosity: {
      verbosity: 1,
      query: { verbosity: 2 },
      storage: {
         verbosity: 2,
         journal: {
            verbosity: 1
         }
      }
   }
} )

上面例子中的方法,

将全局的日志等级设置成1;

将query的日志等级设置成2;

将storage的日志等级设置成2;

将storage.journal的日志等级设置成1;

方法三:写入配置文件

执行这个命令,等同于在配置文件中写入:


systemLog:
    verbosity: 1
    component:
        query:
            verbosity: 2
        storage:
            verbosity: 2
            journal:
                verbosity: 1

方法四:启动的时候,设置参数

除此之外,我们也可以在mongod启动的时候,通过命令设置某个日志组件的日志等级,如下:


mongod --setParameter "logComponentVerbosity={command: 3}"

03 日志数据量很大的处理办法

    有时候,长时间没有清理日志,日志的数据量会变的很大,这个时候我们可以通过两种方法来对日志进行滚动:

方法一:

直接关闭MongoDB服务,然后把老的日志文件给mv掉,启动MongoDB服务,此时会生成一个新的mongodb.log的日志;

很显然,这个方法不够优雅。

方法二:

利用日志轮滚的方法,直接在MongoDB的命令行里面输入:


use admin  //切换到admin数据库
db.runCommand({logRotate:1})

这种方法采用了命令来切换日志文件,不需要关闭mongodb服务,是一个比较推荐的做法。

当然,如果需要人手工的定期执行这个命令,好像也不够优雅,所以可以配合crontab去做这个事情,每天定时执行一次,达到日志文件轮滚的目的。

以上就是详解MongoDB中的日志模块的详细内容,更多关于MongoDB 日志模块的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解MongoDB中的日志模块

本文链接: https://www.lsjlt.com/news/123769.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解MongoDB中的日志模块
    目录01 MongoDB日志组件种类及日志等级02 设置某个日志组件的日志级别方法一:db.setLogLevel()方法二:执行MongoDB命令方法三:写入配置文件方法四:启动的...
    99+
    2024-04-02
  • 详解 python logging日志模块
    目录1.日志简介2.日志级别3.修改日志级别4.日志记录到文件5.指定日志格式6.记录器(logger)7.处理器(Handler)8.处理器操作9.格式器(formatter)10...
    99+
    2024-04-02
  • python日志模块loguru详解
    目录前言使用步骤安装库简单使用方法配置异常追溯总结前言 在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会才用日志的方式来进行记录这些信息。py...
    99+
    2024-04-02
  • Mybatis日志模块的适配器模式详解
    目录Mybatis的日志模块的适配器模式Log接口日志工厂类LogFactoryLog接口的实现类总结Mybatis的日志模块的适配器模式 我们在开发中日志是必不可少的一部分,而市场...
    99+
    2022-11-13
    Mybatis日志模块 Mybatis适配器模式
  • Python学习之日志模块详解
    目录日志的作用日志的等级logging 模块的使用logging 模块演示小案例OK,今天我们来学习一下 python 中的日志模块,日志模块也是我们日后的开发工作中使用率很高的模块...
    99+
    2024-04-02
  • Django logging日志模块实例详解(日志记录模板配置)
    目录一.Django日志二、Logger 记录器Django 内置记录器三、Handler 处理程序Logging 自身携带Handler四、Filter过滤器五、Formatter...
    99+
    2024-04-02
  • Python 日志模块详解及怎么应用
    本篇文章为大家展示了Python 日志模块详解及怎么应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。日志概述百度百科的日志概述:Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志...
    99+
    2023-06-02
  • loggin(日志模块)
      这是一个提供日志功能的模块,它可以让你更敏捷的为你程序提供日志功能   一、常用日志记录场景及最佳解决方案: 日志记录方式 最佳记录日志方案 普通情况下,在控制台显示输出 pr...
    99+
    2023-01-30
    模块 日志 loggin
  • Python3 日志模块
    Python3 日志模块 python3 日志模块官网说明python中日志等级从高到低依次为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET 默认的日志等...
    99+
    2023-01-31
    模块 日志
  • Python中logging日志模块代码调试过程详解
    目录一、日志层级二、创建模块三、使用日志的优点大家好,为了进行调试和错误跟踪,人们在整个代码库中广泛使用日志,今天来看看如何在代码中定义日志,并探讨日志的权限。 一、日志层级 在开始...
    99+
    2023-05-18
    Python logging日志模块 Python 日志模块代码调试
  • Pytest使用logging模块写日志的实例详解
    logging是python语言中的一个日志模块,专门用来写日志的,日志级别通常分为debug、info、warning、error、critical几个级别,一般情况下,默认的日志...
    99+
    2022-12-08
    Pytest logging模块 Pytest logging模块写日志 Pytest日志
  • Python 日志模块logging
    logging模块: logging是一个日志记录模块,可以记录我们日常的操作。 logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开。 logging日志等级:CRITICAL(50) > E...
    99+
    2023-01-30
    模块 日志 Python
  • Python中日志模块是什么
    这篇文章主要介绍了Python中日志模块是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。日志的作用说到日志,我们完全可以想象为现实生活中的日记。日记是我们平时记录我们生活...
    99+
    2023-06-29
  • MySQL日志模块的简介
    这篇文章将为大家详细讲解有关MySQL日志模块的简介,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。目录一、简介二、redo log三. binlog四. 内部工作流程My...
    99+
    2024-04-02
  • 日志记录模块logging
    在python中,日志记录显示有两种方式,一种是保存在文件和打印屏幕上,一种保存在文件中。 第一种,直接保存在文件中。 1 import logging #日志模块,方便记录日志 2 3 # 下面是配置日志记录格式 4 lo...
    99+
    2023-01-30
    模块 日志 logging
  • MongoDB中4种日志的详细介绍
    前言 任何一种数据库都有各种各样的日志,MongoDB也不例外。MongoDB中有4种日志,分别是系统日志、Journal日志、oplog主从日志、慢查询日志等。这些日志记录着MongoDB数据库不同方面的...
    99+
    2024-04-02
  • python日志处理模块
    1 日志级别 日志级别level 数值 CRITICAL 50 ERROR 40 WARNING 30 ,默认日志级别 INFO 20 DEBUG 10 NOTSET 0,表示不设置 日志级别是指...
    99+
    2023-01-31
    模块 日志 python
  • python之强大的日志模块
    作者:txw1958 | 出处:博客园 | 2011/10/21 19:41:55 | 阅读43次 1.简单的将日志打印到屏幕   import logging logging.debug('This is debug message...
    99+
    2023-01-31
    模块 强大 日志
  • 详解MongoDB Go Driver如何记录日志
    目录引言背景ClientOptions.Monitor字段引言 如果你有这些问题: golang 官方的 mongo driver 怎么执行了没有日志输出啊golang mongo driver 如何记录sql,如何打印...
    99+
    2023-08-21
    MongoDB Go Driver记录日志 MongoDB Go Driver
  • Python中的logging模块实现日志打印
    目录方法1:配置并输出日志到标准输出方法2:配置输出到日志文件前言: 大家在写代码的时候,经常会使用print打印日志方便排查问题,然而print的问题就是太过简单,缺少时间、日志级...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作