首页 > 其他分享 >logging两种记录日志的调用方式

logging两种记录日志的调用方式

时间:2024-02-22 10:00:19浏览次数:27  
标签:调用 记录器 配置 handler 处理器 logging 日志

 

  1. 使用 logging.getLogger() 方式: 这种方式是通过代码直接操作和配置日志记录器。如前所述,你可以创建或获取一个日志记录器实例,然后为其设置级别、添加处理器等。例如:

    Python
    1import logging
    2
    3logger = logging.getLogger('my_module')
    4logger.setLevel(logging.DEBUG)
    5
    6# 创建并配置处理器
    7console_handler = logging.StreamHandler()
    8console_handler.setLevel(logging.DEBUG)
    9formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    10console_handler.setFormatter(formatter)
    11
    12# 将处理器添加到日志记录器
    13logger.addHandler(console_handler)
    14
    15# 记录日志信息
    16logger.debug("Debug message")
  2. 使用 logging.config.dictConfig() 方式: 这是一种高级配置方法,允许你使用字典(JSON格式)来一次性配置整个日志系统。这种方式的优点是可以方便地存储配置文件,并且支持更复杂的日志结构配置。

    在你给出的例子中,字典中的配置包含了日志记录器、处理器、格式器以及它们之间的关系。比如:

    • formatters:定义了名为“simple”的格式器,用于控制输出的日志格式。

    • handlers:定义了两个处理器,分别是输出到控制台的“console”和写入不同日志文件的“info_file_handler”和“error_file_handler”。每个处理器都有对应的级别、格式器、文件名等属性。

    • loggers:定义了一个名为“my_module”的日志记录器,设置了它的日志级别为ERROR,并指定了只使用“info_file_handler”处理器,同时关闭了默认的向上级传播行为(propagate=no)。

    • root:根日志记录器的配置,它处理所有没有明确指定名称的日志记录器。这里设置了日志级别为INFO,并将三个处理器都关联到了根记录器上。

    最后,调用 logging.config.dictConfig(configjson) 会根据这个字典配置立即生效整个日志系统的设置。

总之,第一种方式适合于简单的日志配置或者需要动态修改配置的情况,而第二种方式则适用于复杂、静态的日志配置场景,具有更好的模块化和可读性。

 

记录日志方式也都可以使用

logger = logging.getLogger('my_module')
logger.error("An error occurred in my_module")

标签:调用,记录器,配置,handler,处理器,logging,日志
From: https://www.cnblogs.com/sjip008/p/18026685

相关文章

  • sql server配置主从同步环境下的日志收缩
    两种方法:通过图形界面逐步操作:(1)打开数据库属性窗口。(2)更改数据库恢复模式,将其从“完整”改成“简单”。(3)收缩数据库日志,选择“任务”->“收缩”。(4)收缩完成后,将数据库的恢复模式修改回“完整”.使用命令:(1)将数据库的恢复模式设置为“简单”:SQLALT......
  • Python中logging模块
     在项目中我们常常需要打印日志,特别是在系统级项目上一般都会有自己日志模块,下面我们将介绍下Python中自带的logging模块(注意这是模块的名称并不是类)一、基本使用logging是一个包的名称,我们真正使用的是logging.Logger这个类。但是我们不能使用常规的方式进行初始化,......
  • WinRT: 可能是 Windows 上最好用的 Native ABI 和远程调用方案
    前言Windows自从很久以来就有一个叫做COM的NativeABI。这是一套面向对象的ABI,在此之上Windows基于COMABI暴露了各种各样的API,例如ManagementAPI、ShellAPI和DirectXAPI就是典型。COM自然不仅局限于进程内调用,跨进程的RPC调用也是不在话下。但无论如何,COM......
  • Git commit日志基本规范
    Git commit日志基本规范<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>对格式的说明如下:type代表某次提交的类型,比如是修复一个bug还是增加一个新的feature。所有的type类型如下:feat: 新增featurefix: 修复bugdocs: 仅仅修改了文档,比如READM......
  • 智慧安防/视频监控汇聚平台EasyCVR如何通过接口调用获取设备录像回看流地址?
    视频云存储/视频融合/安防监控EasyCVR视频汇聚系统可兼容各品牌的IPC、NVR、移动单兵、智能手持终端、移动执法仪、无人机、布控球等设备的接入,支持的接入协议包括:国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云s......
  • Dynamics 365开启审计日志
    1.启用审核选择设置(齿轮图标)>高级设置>系统设置>审核选项卡。或者,从 PowerApps主页,选择设置(齿轮图标)>高级设置>设置>审核>全局审核设置。在审核设置下,启用以下复选框:启动审核(StartAuditing)审核用户访问(Audituseraccess)(注意:仅捕获用户登录)启动读取审核(St......
  • 记录一次如何给openai (chatgpt api 调用)充值的经历
    网上有很多通过支付宝充值apple礼品卡的教程,能成功充值chatgpt-plus,我也成功充值了。但这个账号不能在自己的服务中调用api,需要额外充值,本次是记录如何给openaiapi 接口调用充值https://platform.openai.com/account/billing/payment-methods  用fomepay成功充值的经历......
  • 面试官让我讲讲MySQL三大核心日志实现原理
    本文分享自华为云社区《面试必问|聊聊MySQL三大核心日志的实现原理?》,作者:冰河。MySQL几乎成为互联网行业使用的最多的开源关系型数据库,正因如此,MySQL也成为各大互联网公司面试中必问的数据库,尤其是MySQL中的事务实现机制和三大核心日志的实现原理。今天,我们就重点聊聊MySQL三......
  • 在k8S中,如何查看一个Pod最近20分钟日志?
    在Kubernetes(k8S)中,要查看一个Pod最近20分钟的日志,可以使用kubectllogs命令结合--since参数来指定时间范围。但是请注意,kubectllogs目前并不直接支持以分钟为单位的时间参数,而是接受时间戳或者相对时间(例如秒数)。假设您想要查看最近20分钟的Pod日志,首先需要计......
  • 在k8S中,如何查看Pod中上一个挂掉的容器日志?
    在Kubernetes(k8S)中,如果一个Pod中的容器已经崩溃停止,并且您想查看该容器的日志,可以使用kubectllogs命令配合-p或--previous参数来获取上一个(已停止)容器的日志。命令格式如下:kubectllogs<pod-name>-p这里<pod-name>是您想要查看日志的Pod的名称。通过添加-......