前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于python logging 模块

关于python logging 模块

原创
作者头像
dbdocker
发布2024-02-01 10:46:01
1130
发布2024-02-01 10:46:01
  1. 导入logging模块

首先需要导入Python内置的logging模块。可以通过以下命令完成:

代码语言:javascript
复制
import logging
  1. 设置日志级别

logging模块提供了多个级别的日志,从严格到宽松分别是:

  • CRITICAL
  • ERROR
  • WARNING
  • INFO
  • DEBUG

默认情况下,日志级别为INFO。可以通过以下命令将日志级别设置为DEBUG:

代码语言:javascript
复制
logging.basicConfig(level=logging.DEBUG)
  1. 创建日志记录器

在日志中使用记录器(Logger)可以帮助我们更好地控制日志输出的格式和位置。可以通过以下命令创建一个名为my_logger的记录器:

代码语言:javascript
复制
logger = logging.getLogger('my_logger')
  1. 添加日志记录器到级别

如果要在多个记录器中记录日志,需要将它们添加到同一级别。例如,将日志级别设置为WARNING:

代码语言:javascript
复制
logging.basicConfig(level=logging.WARNING)

然后,可以通过以下命令将my_logger记录器添加到级别:

代码语言:javascript
复制
logger.addHandler(logging.StreamHandler())
  1. 记录日志

使用记录器(Logger)可以方便地记录日志。可以通过以下命令记录日志:

代码语言:javascript
复制
logger.warning('This is a warning message')

在记录日志时,还可以指定日志级别、日志文件名、日志级别字典等参数。例如:

代码语言:javascript
复制
logging.basicConfig(filename='example.log', level=logging.DEBUG,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.debug('This is a debug message')
  1. 使用其他格式化方式

除了%(name)s%(levelname)s等标准格式化字符串外,还可以使用自定义格式化字符串来格式化日志。例如:

代码语言:javascript
复制
logger.info('This is an info message', extra={'name': 'Alice'})

这将把name参数添加到日志文件中。

基本配置示例

代码语言:python
代码运行次数:0
复制
import logging

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

在这个例子中,通过basicConfig方法配置了日志级别为DEBUG,并定义了日志消息的格式。然后,使用不同级别的日志记录消息。

将日志记录到文件:

代码语言:python
代码运行次数:0
复制
import logging

logging.basicConfig(filename='example.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

在这个例子中,日志消息将被记录到名为example.log的文件中。

使用不同的日志处理程序:

代码语言:python
代码运行次数:0
复制
import logging

# 创建一个文件处理程序
file_handler = logging.FileHandler('example.log')
file_handler.setLevel(logging.DEBUG)

# 创建一个控制台处理程序
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.WARNING)

# 创建一个日志记录器并将处理程序添加到它
logger = logging.getLogger('example')
logger.setLevel(logging.DEBUG)
logger.addHandler(file_handler)
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')
  1. 这个例子中,通过创建不同的处理程序,可以将日志消息同时记录到文件和控制台。控制台处理程序的级别被设置为WARNING,因此只有WARNING级别及以上的消息会在控制台上显示。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档