Python logging模块详解

Python 的 logging 模块提供了一个灵活的记录日志的框架,它允许记录消息到不同的目的地,如控制台、文件、网络等。下面是一些基本的示例代码,展示如何使用 logging 模块:

基本配置和日志记录

import logging

# 配置基本的日志记录
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s')

# 记录不同级别的日志
logging.debug("这是一个 debug 级别的日志")
logging.info("这是一个 info 级别的日志")
logging.warning("这是一个 warning 级别的日志")
logging.error("这是一个 error 级别的日志")
logging.critical("这是一个 critical 级别的日志")

配置日志记录到文件

import logging

# 配置日志记录到文件
logging.basicConfig(filename='example.log', level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')

# 记录日志到文件
logging.info("这条日志信息将被记录到文件")

使用日志记录器(Logger)和处理器(Handler)

Logger对象是核心组件之一,负责实际记录日志消息。以下是关于Logger对象的详细介绍:

创建Logger对象

可以通过logging.getLogger()方法来创建一个Logger对象。如果提供一个名称参数,它将返回一个具有该名称的Logger对象;如果不提供名称,它将返回一个名为rootLogger对象。

import logging

# 创建一个名为 'my_logger' 的 Logger 对象
logger = logging.getLogger('my_logger')

Logger的层级结构

Logger对象可以形成一个层级结构,类似于文件系统中的目录结构。例如,名为'a.b'Logger是名为'a'Logger的子Logger。这种层级结构有助于管理和配置日志记录。

# 创建一个名为 'a' 的 Logger 对象
logger_a = logging.getLogger('a')

# 创建一个名为 'a.b' 的 Logger 对象
logger_a_b = logging.getLogger('a.b')

设置日志级别

Logger对象有一个日志级别属性,用于控制哪些日志消息会被处理。常见的日志级别包括:

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

可以使用setLevel()方法来设置Logger对象的日志级别。

logger.setLevel(logging.DEBUG)

添加和移除Handler

Logger对象可以有多个Handler对象,用于处理日志消息。Handler对象负责将日志消息发送到不同的目的地,例如控制台、文件、网络等。

你可以使用addHandler()方法来添加Handler对象,使用removeHandler()方法来移除Handler对象。

# 创建一个 StreamHandler,用于将日志消息输出到控制台
console_handler = logging.StreamHandler()

# 将 StreamHandler 添加到 Logger 对象
logger.addHandler(console_handler)

# 移除 StreamHandler
logger.removeHandler(console_handler)

记录日志消息

Logger对象提供了多个方法来记录不同级别的日志消息,例如:

  • debug()
  • info()
  • warning()
  • error()
  • critical()
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:通过代码

可以使用addHandler()方法来添加Handler对象,使用removeHandler()方法来移除Handler对象。

import logging

# 创建一个日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)  # 设置日志记录的最低级别

# 创建一个控制台处理器,并设置级别为 INFO
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)

# 创建一个文件处理器,并设置级别为 DEBUG
file_handler = logging.FileHandler('my_debug.log')
file_handler.setLevel(logging.DEBUG)

# 定义日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值