首页 > 编程语言 >Python(logging.getLogger())

Python(logging.getLogger())

时间:2024-11-04 14:43:39浏览次数:3  
标签:logging Python app getLogger 记录器 日志 logger

目录



logging.getLogger() 是 Python 的 logging 模块中的一个函数,主要用于创建或获取一个日志记录器(logger)对象。logging 模块是 Python 标准库中的一部分,旨在提供灵活的日志记录功能,用于记录应用程序的运行信息,调试信息和错误信息。以下是关于 logging.getLogger() 的详细介绍。

1. 基本功能

logging.getLogger() 的基本功能是获取一个指定名称的日志记录器对象。它有以下两个用法:

  • logging.getLogger()(无参数):获取一个根日志记录器(root logger)对象。默认的根日志记录器名称为空字符串 ""
  • logging.getLogger(name)(有参数):获取一个指定名称的日志记录器对象。如果指定的名称在当前日志层次结构中不存在,它会创建一个新日志记录器。

参数:

  • name(可选):日志记录器的名称,通常用模块名或自定义的字符串来命名。以模块名命名可以帮助在日志中识别日志的来源(如 __name__)。

    如果 name 被指定为空字符串 ""logging.getLogger() 会返回根日志记录器对象。

    如果名称为其他值,logging.getLogger(name) 会返回相应名称的日志记录器,或新建一个该名称的日志记录器。

返回值:

  • logging.getLogger() 返回一个 Logger 对象。Logger 是日志记录器对象的基本类,它提供了记录消息、设置日志级别、添加处理器(handler)、格式化日志等功能。


2. 日志记录器的层次结构

日志记录器是分层次组织的,使用点号(.)分隔。例如:

  • logging.getLogger("app")logging.getLogger("app.module") 获取的是不同的日志记录器。
  • appapp.module 的父记录器,这种层级结构允许灵活的日志配置。
  • 父记录器和子记录器可以共享配置信息(如日志级别)。


3. 示例代码

import logging

# 配置日志格式和日志级别
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")

# 获取根日志记录器
root_logger = logging.getLogger()
root_logger.debug("This is a debug message from the root logger.")

# 获取名为 "app" 的日志记录器
app_logger = logging.getLogger("app")
app_logger.info("This is an info message from the app logger.")

# 获取名为 "app.module" 的日志记录器
module_logger = logging.getLogger("app.module")
module_logger.warning("This is a warning message from the app.module logger.")


4. 典型用法

在大型应用中,推荐使用 logging.getLogger(__name__) 获取模块级日志记录器,这样在日志中可以清晰显示消息来源模块。



5. 重要特性

  • 单例模式:每次调用 logging.getLogger(name) 时,若名称相同,则返回相同的日志记录器实例。
  • 继承性:子日志记录器会继承父日志记录器的配置(如处理器、级别等)。
  • 日志过滤:可以通过设置日志级别或过滤器(filter)来控制日志输出。


6. 其他相关函数

  • logging.basicConfig():配置日志系统的基本设置,比如日志输出格式和日志级别。
  • logger.setLevel():用于设置日志记录器的日志级别(如 DEBUGINFOWARNING 等)。
  • logger.addHandler():为日志记录器添加一个处理器对象(如 StreamHandlerFileHandler)来定义日志的输出方式和位置。

通过 logging.getLogger(),可以在应用程序中创建模块化的、分级管理的日志系统。



标签:logging,Python,app,getLogger,记录器,日志,logger
From: https://www.cnblogs.com/keye/p/18525214

相关文章

  • python 自动化 excel数据筛选后发送outlook邮件
    importpandasaspdfromdatetimeimportdatetime,timedeltaimportwin32com.clientaswin32importos#导入os模块用于文件删除importglobimportopenpyxl#导入openpyxl模块用于单元格合并和格式化#定义文件路径和工作表名称及起始行file_path='要筛选的ex......
  • 总结---20个工作中一定会用到的python实用小脚本
    一、文件批量重命名功能:将指定文件夹下的所有文件按照一定规则进行重命名。使用方法:importos​defbatch_rename(folder_path,prefix):  files=os.listdir(folder_path)  forindex,file_nameinenumerate(files):    old_file_path=os.path.j......
  • (3)读<Bayesian Analysis with Python 3rd>Python上的贝叶斯分析,一次概率建模的实践指导。
    在我们开启第二章之前,先去回顾一下第一章的主要内容我们从对统计建模,概率、条件概率、随机变量以及概率分布的讨论,延申至贝叶斯理论的知识。我们紧接着用一个硬币的问题来介绍基础的贝叶斯模型和数据分析。我们用经典的骰子例子介绍贝叶斯统计中概率分布以及不确定性。我们尝......
  • Python—深浅拷贝(copy)
    1、浅拷贝(copy.copy)定义:浅拷贝创建(复制)一个新对象,该对象与原对象具有相同的值,但对可变类型字段只会复制引用地址,而不复制实际的对象。这意味着原对象和新对象的引用类型属性指向同一块内存。拷贝的程度浅,只拷贝原数据的首地址,然后通过原数据的首地址,去获取内容特点:不可变数......
  • Python编程风格:使用语义更加明确的方法
    在软件开发中,编程风格是一个至关重要的方面,它不仅影响代码的可读性和可维护性,还直接关系到软件的质量和开发效率。在Python中,编程风格尤其重要,因为Python的设计哲学强调代码的可读性和简洁性。本文将探讨如何使用语义更加明确的方法来提升Python代码的可读性和可维护性,并提供具......
  • 基于Python的智能旅游推荐系统设计与实现
    一、摘要本毕业设计的内容是设计并且实现一个基于Python技术的智能旅游推荐系统。它是在Windows下,以MYSQL为数据库开发平台,使用Python技术进行设计。智能旅游推荐系统的功能已基本实现,主要实现首页,个人中心,用户管理,旅游资讯管理,景点信息管理,景点分类管理,酒店信息管理,行程分享......
  • python爬虫:xpath的基本使用指南
    当面对一个新网站时,了解其数据加载逻辑是获取所需信息的关键。以下是一份详细的技术指南,帮助你分析和提取网站数据。1.数据加载来源分析1.1数据从页面源代码加载浏览器获取页面源代码浏览器通过发送HTTP请求获取页面源代码。作为开发者,我们可以通过编程模拟这一过程。......
  • Python中的生产者-消费者模型:多进程与多线程的实践
    Python中的生产者-消费者模型:多进程与多线程的实践在现代编程中,生产者-消费者模型是一种常见的设计模式,用于处理任务队列和并发执行。Python提供了多种工具来实现这一模型,包括threading模块和multiprocessing模块。本文将通过一个实际的案例——从网页上批量下载图片——来......