当前位置: 首页 > news >正文

【Python】Python中的logging模块介绍和示例

Python中的logging模块是一个强大的内置模块,用于记录和跟踪应用程序的运行过程。它提供了灵活的日志记录功能,可以将日志消息输出到多个目标(如控制台、文件、远程服务器等),并支持不同的日志级别。以下是logging模块的一些关键概念和使用方法:

关键概念

  1. Logger: 日志记录器,用于生成日志消息。应用程序代码中使用logger对象记录日志。
  2. Handler: 处理器,定义日志消息的输出位置(如控制台、文件、网络等)。
  3. Formatter: 格式化器,定义日志消息的格式(如时间戳、日志级别、消息内容等)。
  4. Log Level: 日志级别,用于表示日志消息的严重程度。常见的日志级别有:
    • DEBUG: 详细的调试信息,通常用于诊断问题。
    • INFO: 一般的运行信息,表示程序正常运行。
    • WARNING: 警告信息,表示可能的问题。
    • ERROR: 错误信息,表示发生了严重的问题。
    • CRITICAL: 致命错误信息,表示程序无法继续运行。

基本用法

以下是一个简单的示例,展示了如何使用logging模块记录日志:

import logging# 创建一个Logger对象
logger = logging.getLogger('example_logger')
logger.setLevel(logging.DEBUG)  # 设置日志级别# 创建一个Handler对象,将日志输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)# 创建一个Formatter对象,定义日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)# 将Handler添加到Logger
logger.addHandler(console_handler)# 记录日志消息
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

高级用法

将日志输出到文件

可以使用FileHandler将日志消息写入文件:

file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.ERROR)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

配置多个Handler

可以为同一个Logger配置多个Handler,以实现日志消息的多种输出方式:

logger.addHandler(console_handler)
logger.addHandler(file_handler)

使用配置文件配置日志

可以使用配置文件(如JSON或YAML)配置日志:

import logging.config
import jsonconfig = {"version": 1,"formatters": {"default": {"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"}},"handlers": {"console": {"class": "logging.StreamHandler","level": "DEBUG","formatter": "default"},"file": {"class": "logging.FileHandler","level": "ERROR","formatter": "default","filename": "app.log"}},"root": {"level": "DEBUG","handlers": ["console", "file"]}
}logging.config.dictConfig(config)
logger = logging.getLogger()logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

自定义Logger

可以创建多个Logger对象,用于不同的模块或子系统:

module_logger = logging.getLogger('module_logger')
module_logger.setLevel(logging.INFO)
module_logger.addHandler(console_handler)module_logger.info('This is an info message from module_logger')

捕获异常信息

可以使用exception方法记录异常堆栈信息:

try:1 / 0
except ZeroDivisionError:logger.exception("Exception occurred")

logging模块是Python应用程序中记录和调试的重要工具,灵活配置和使用该模块可以帮助开发者更好地了解和维护代码。

http://www.lryc.cn/news/348543.html

相关文章:

  • PXIe规格i3/i5/i7单板计算机控制器
  • 弱网对抗的策略有哪些?
  • 如何通过OMS加快大表迁移至OceanBase
  • 讨论:WGS84与CGCS2000的坐标系怎么互转
  • SpringCloud面试题
  • 深入了解Java Stream中的Collectors.partitioningBy()
  • 下拉多选【bootstrap-multiselect】
  • 建筑(八大员)报考条件
  • _remote.repositories作用
  • 2.3 Spark运行架构与原理
  • redis的跳表
  • 探索未知,开启海外盲盒新纪元——海外盲盒App,你的全球奇遇宝箱
  • LeetCode2215找出两数组的不同
  • Git系列:git show 使用技巧
  • python爬虫(五)之新出行汽车爬虫
  • 记录:卡尔曼滤波推导
  • AI游戏外挂为何违法?
  • UVa1006/LA2238 Fixed Partition Memory Management
  • Autosar架构
  • Java 异常介绍
  • vulhub靶机struts2环境下的s2-032(CVE-2016-3081)(远程命令执行漏洞)
  • Kubernetes之Headless Services
  • 银行监管报送系统系列介绍(十七):一表通2.0
  • 网络安全之OSPF进阶
  • Ubuntu虚拟机上推荐一款免费好用的git版本管理工具
  • python下载及安装
  • visual studio2022 JNI极简开发流程
  • Linux 第三十章
  • Linux网络——自定义序列化与反序列化
  • 大模型介绍