Python中使用logging模块打印log日志详解

当我们开发Python项目时,很可能需要记录和追踪程序运行日志以便于排查问题和优化代码。Python中的logging模块提供了一种方便且强大的方法来处理日志,同时也可以按照不同的级别来过滤不同等级的日志信息。

下面是使用logging模块打印log日志的完整攻略:

1、导入logging模块

import logging

2、设定日志输出级别和格式

# 设定日志输出级别
logging.basicConfig(level=logging.DEBUG)

# 设定日志输出格式
logger = logging.getLogger(__name__)
logger_formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")

以上代码设置了日志输出级别为DEBUG(打印全部级别的日志信息),并定义了一个日志输出格式为如下形式的字符串:

2022-01-01 13:00:00,000 DEBUG This is a log message

其中:
- %(asctime)s:表示日志信息记录的时间
- %(levelname)s:表示日志的级别(DEBUG、INFO、WARNING、ERROR、CRITICAL等)
- %(message)s:表示日志信息的具体内容

3、记录日志信息并输出

# 记录日志信息
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")

# 输出日志信息
console_handler = logging.StreamHandler()
console_handler.setFormatter(logger_formatter)
logger.addHandler(console_handler)

以上代码利用logger对象记录了4条不同级别的日志信息,并通过StreamHandler对象在控制台输出这些日志信息。

示例一

import logging

# 设定日志输出级别
logging.basicConfig(level=logging.DEBUG)

# 设定日志输出格式
logger = logging.getLogger(__name__)
logger_formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")

# 记录日志信息
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")

# 输出日志信息
console_handler = logging.StreamHandler()
console_handler.setFormatter(logger_formatter)
logger.addHandler(console_handler)

输出结果:

2022-01-01 13:00:00,000 INFO This is an info message
2022-01-01 13:00:00,000 WARNING This is a warning message
2022-01-01 13:00:00,000 ERROR This is an error message
2022-01-01 13:00:00,000 CRITICAL This is a critical message

示例二

import logging

# 设定日志输出级别
logging.basicConfig(filename="example.log", level=logging.INFO)

# 设定日志输出格式
logger = logging.getLogger(__name__)
logger_formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")

# 记录日志信息
logger.info("This is an info message")
logger.warning("This is a warning message")

# 输出日志信息
file_handler = logging.FileHandler("example.log")
file_handler.setFormatter(logger_formatter)
logger.addHandler(file_handler)

以上代码将日志信息输出到example.log文件中,并只记录INFO级别以上的日志信息。

通过以上示例,我们可以看到logging模块提供了非常良好的灵活性和扩展性,可以根据实际需要生成不同级别和格式的日志信息,有效地帮助我们对程序进行调节和维护。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中使用logging模块打印log日志详解 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • python利用递归方法实现求集合的幂集

    关于“Python利用递归方法实现求集合的幂集”的攻略,可以分为以下几个步骤: 1. 理解集合的幂集 幂集即为一个集合的所有子集(包括空集和全集)。例如,集合{1, 2}的幂集为:{∅, {1}, {2}, {1, 2}}。 2. 设计递归算法 在 Python 中,递归可以用函数来实现。我们可以使用一个递归函数求某个集合的幂集。该函数的设计如下: def …

    python 2023年5月13日
    00
  • python中使用.py配置文件的方法详解

    Python中使用.py配置文件的方法详解 在Python开发中,我们通常需要读取配置文件,将一些地址、路径、参数等内容从代码中独立出来,方便管理和维护。Python支持常见的多种配置文件格式,如INI格式、JSON格式、XML格式等,其中.py格式配置文件则相对比较特殊,其特殊之处在于.py格式本身就是Python模块,可以直接在代码中引用,具有更高的灵活…

    python 2023年5月30日
    00
  • python实现Excel多行多列的转换的示例

    下面我将介绍如何用 Python 实现 Excel 多行多列的转换示例,包括以下内容: 安装必要的库 读取Excel文件数据 转换Excel文件数据 写入转换后数据到新的Excel文件中 以下是完整实例教程: 1. 安装必要的库 这个程序需要用到 pandas 和 openpyxl 库,所以需要先安装: pip install pandas openpyxl…

    python 2023年5月13日
    00
  • Python正则表达式的7个使用典范(推荐)

    Python正则表达式的7个使用典范 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。在Python中,模块提供了正则表式支持,方便进行字符串的处理。本文将详细讲解Python正则表达式的7个使用典,包括正则表达语法、re模块的常用函数以及示例说明。 1. 匹配邮箱地址 import re# 定义正则表式 pattern = r…

    python 2023年5月14日
    00
  • 使用pickle存储数据dump 和 load实例讲解

    使用pickle模块可以将Python中的复杂数据类型,如字典、列表等,转换为二进制文件或字符串进行存储和传输。其中,dump操作将Python数据序列化为二进制文件,load操作将二进制文件反序列化为Python数据类型。接下来,我们介绍如何使用pickle实现数据的dump和load操作。 使用pickle进行数据dump操作 import pickle…

    python 2023年6月2日
    00
  • Python3.10的一些新特性原理分析

    以下是“Python3.10的一些新特性原理分析”的完整攻略,其中包括了新特性的定义、原理分析、示例说明以及常见问题解决方法。 Python3.10的一些新特性原理分析 新特性的定义 Python3.10是Python编程语言的一个新版本,它包含了一些新特性这些新特性可以帮助我们更好地编写Python程序。这些新特性包括: Pattern Matching …

    python 2023年5月13日
    00
  • python实现爬取百度图片的方法示例

    Python实现爬取百度图片的方法示例 本文将详细讲解如何使用Python爬取百度图片的方法。我们将涵盖以下主题: 准备工作:安装必要的库 获取图片链接:利用百度图片搜索的API进行爬取 下载图片:使用Python的requests包进行下载 准备工作 在开始爬取百度图片之前,我们需要安装以下Python库: requests:用于发送HTTP请求和获取HT…

    python 2023年5月14日
    00
  • 在 cx_Freeze 之后 Python 脚本未写入文件

    【问题标题】:Python script not writing on files after cx_Freeze在 cx_Freeze 之后 Python 脚本未写入文件 【发布时间】:2023-04-02 10:19:02 【问题描述】: 我正在编写一个打算用 cx_Freeze 冻结的脚本。我正在使用 Python 3.6 和 cx_Freeze 5.…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部