我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 中的日志处理,你掌握了哪些技巧?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 中的日志处理,你掌握了哪些技巧?

在 Python 中进行日志处理是非常重要的,它可以帮助我们快速定位问题,分析程序运行情况,以及优化程序性能。本文将介绍 Python 中日志处理的一些技巧,希望能够帮助你更好地掌握日志处理。

  1. 什么是日志处理

在编写程序时,我们可以通过 print() 函数打印一些调试信息,以便于调试。但是在程序运行时,有些信息并不需要打印出来,或者是在正式环境中需要记录下来以便于后续分析。这时候我们就需要使用日志处理来记录这些信息。

日志处理可以将程序运行时的信息记录到文件或者是终端中,方便我们后续分析。同时,日志处理还可以对日志信息进行过滤、格式化和级别控制,以便于我们快速定位问题。

  1. Python 中的 logging 模块

Python 中的 logging 模块提供了完整的日志处理功能,它可以将日志信息记录到文件或者是终端中,同时还提供了丰富的日志过滤、格式化和级别控制功能。下面我们来介绍一些常用的日志处理技巧。

首先,我们需要导入 logging 模块:

import logging
  1. 日志级别控制

在 logging 模块中,日志信息可以分为不同的级别,包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL。我们可以通过设置日志级别来控制日志信息的输出。

下面是一个简单的例子:

import logging

logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")

运行上面的代码,我们可以看到如下输出:

2021-10-20 10:49:24,066 - DEBUG - debug message
2021-10-20 10:49:24,066 - INFO - info message
2021-10-20 10:49:24,066 - WARNING - warning message
2021-10-20 10:49:24,066 - ERROR - error message
2021-10-20 10:49:24,066 - CRITICAL - critical message

可以看到,我们设置了日志级别为 DEBUG,所以所有级别的日志信息都被输出了。

如果我们只想输出 WARNING 及以上级别的日志信息,可以将日志级别设置为 WARNING:

import logging

logging.basicConfig(level=logging.WARNING, format="%(asctime)s - %(levelname)s - %(message)s")
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")

输出结果如下:

2021-10-20 10:51:13,858 - WARNING - warning message
2021-10-20 10:51:13,858 - ERROR - error message
2021-10-20 10:51:13,858 - CRITICAL - critical message

可以看到,只有 WARNING 及以上级别的日志信息被输出了。

  1. 日志信息格式化

在输出日志信息时,我们可以通过格式化字符串来控制日志信息的输出格式。logging 模块中默认的日志信息格式为:%(levelname)s:%(name)s:%(message)s。我们可以通过修改 format 参数来改变日志信息的格式。

下面是一个简单的例子:

import logging

logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")

输出结果如下:

2021-10-20 10:54:22,874 - DEBUG - debug message
2021-10-20 10:54:22,874 - INFO - info message
2021-10-20 10:54:22,874 - WARNING - warning message
2021-10-20 10:54:22,874 - ERROR - error message
2021-10-20 10:54:22,874 - CRITICAL - critical message

可以看到,我们将 format 参数设置为了 "%(asctime)s - %(levelname)s - %(message)s",这样输出的日志信息就包含了时间、级别和信息内容。

  1. 将日志信息记录到文件中

除了输出到终端,我们还可以将日志信息记录到文件中。logging 模块提供了 FileHandler 类来实现将日志信息写入文件中。

下面是一个简单的例子:

import logging

logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)

# 创建一个 FileHandler,将日志信息写入文件中
file_handler = logging.FileHandler("example.log")
file_handler.setLevel(logging.WARNING)

# 创建一个 StreamHandler,将日志信息输出到终端
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)

# 设置日志信息格式
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
stream_handler.setFormatter(formatter)

# 添加 handler
logger.addHandler(file_handler)
logger.addHandler(stream_handler)

# 输出日志信息
logger.debug("debug message")
logger.info("info message")
logger.warning("warning message")
logger.error("error message")
logger.critical("critical message")

运行上面的代码,我们可以看到终端输出了 WARNING 及以上级别的日志信息,并将所有级别的日志信息记录到了 example.log 文件中。

  1. 自定义日志处理器

如果 logging 模块提供的处理器不能满足我们的需求,我们还可以自定义日志处理器。自定义日志处理器需要继承 logging.Handler 类,并实现 emit() 方法。

下面是一个简单的例子:

import logging

class MyHandler(logging.Handler):
    def __init__(self, filename):
        super().__init__()
        self.filename = filename

    def emit(self, record):
        with open(self.filename, "a") as f:
            f.write(self.format(record) + "
")

logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)

# 创建一个自定义的日志处理器
my_handler = MyHandler("example.log")
my_handler.setLevel(logging.WARNING)

# 添加 handler
logger.addHandler(my_handler)

# 输出日志信息
logger.debug("debug message")
logger.info("info message")
logger.warning("warning message")
logger.error("error message")
logger.critical("critical message")

运行上面的代码,我们可以看到 WARNING 及以上级别的日志信息被记录到了 example.log 文件中。

  1. 总结

本文介绍了 Python 中日志处理的一些技巧,包括日志级别控制、日志信息格式化、将日志信息记录到文件中和自定义日志处理器。希望这些技巧能够帮助你更好地掌握日志处理,提高程序的调试效率和性能。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 中的日志处理,你掌握了哪些技巧?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中的日志处理和调试技巧有哪些?

Python中的日志处理和调试技巧有哪些?引言:在开发和调试过程中,对于代码的运行状态、错误和异常的跟踪以及性能的评估都是至关重要的。在Python中,日志处理和调试技巧可以帮助我们更好地理解代码的执行情况,定位并修复bug,并优化程序的性
2023-10-22

掌握这些方法,提高你的Golang数据处理技巧!

提升你的Golang数据处理能力:掌握这些方法吧!导言:Golang 是一种高效的编程语言,广泛应用于大数据处理、网络编程和分布式系统等领域。在进行数据处理时,Golang 提供了许多功能强大的方法和函数,帮助我们更高效地处理和操作数据。本
掌握这些方法,提高你的Golang数据处理技巧!
2023-12-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录