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 将德语变音符号导出到 excel 文件中

    【问题标题】:How to export German umlauts into excel file using Python如何使用 Python 将德语变音符号导出到 excel 文件中 【发布时间】:2023-04-05 10:13:01 【问题描述】: 我遇到了以下问题,我还没有在这里找到解决方案。我正在使用 Python 2.7,我喜欢将 Pan…

    Python开发 2023年4月5日
    00
  • python目录与文件名操作例子

    首先我们需要了解在Python中,如何操作系统的目录和文件。Python中,有一个内置的标准库os提供了丰富的函数和模块,用于对文件和目录的操作。 接下来,我将为大家列出常用的一些os模块函数,并通过两个示例来演示如何操作文件和目录。 查看当前工作目录 在Python中使用os模块中的getcwd函数,可以获取当前工作目录的路径,示例代码如下: import…

    python 2023年6月5日
    00
  • Python标准库shutil用法实例详解

    首先我来介绍一下这篇攻略的目录结构和概要: 目录 前言 shutil模块概述 shutil模块方法详解 copy(src, dst) copy2(src, dst) copyfile(src, dst) copytree(src, dst) rmtree(path) move(src, dst) 总结 前言 在Python中,如果我们需要进行文件或目录复制、…

    python 2023年5月13日
    00
  • 关于python time库整理汇总

    关于Python time库整理汇总 什么是Python time库? Python time 库是Python中标准的日期和时间处理库,它提供了很多与时间相关的功能函数。使用 time 库可以完成日期和时间的格式化、获取时间戳、获取本地时间、获取UTC时间等操作。 Python time库的安装 time 库是Python标准库的一部分,所以不需要安装就可…

    python 2023年6月2日
    00
  • Python中的正则表达式与JSON数据交换格式

    以下是详细讲解“Python中的正则表达式与JSON数据交换格式”的完整攻略,包括什么是正则表达式、什么是JSON数据交换格式、如何使用正则表达式解析JSON数据、两个示例说明和注意事项。 什么是正则表达式 正则表达式是一种用于匹配字符串的模式。它是一种特殊的语法,可以用来描述字符串的特征。在Python中,我们可以使用re模块来操作正则表达式。 什么是JS…

    python 2023年5月14日
    00
  • Python编程基础之字典

    Python编程基础之字典 什么是字典? 字典是Python中的一种数据结构,用于存储键值对。每个键(key)对应一个值(value),键和值之间使用冒号进行分割,键值对之间使用逗号进行分隔。字典是无序排列的,并且键必须是唯一的。 字典的定义 可以使用以下语法来定义一个字典: my_dict = {key1: value1, key2: value2, ke…

    python 2023年5月13日
    00
  • Python自动化办公之清理重复文件详解

    Python自动化办公之清理重复文件详解 背景 在日常生活和办公中,随着电脑使用的频繁,文件的数量也会不断地增加,会出现大量的重复文件,这不仅占用磁盘空间,而且也浪费了我们的时间。因此,如何快速地找到重复文件并进行删除,成为了我们需要考虑的事情。 本文将详细介绍如何使用Python自动化处理重复文件。 方案 1. 计算文件的hash值 我们可以通过计算文件的…

    python 2023年6月3日
    00
  • python 元组和列表的区别

    Python中元组和列表都是用来存储一组有序的数据集合,二者最显著的不同是元组不可变,而列表可变。 1. 元组和列表的定义 元组 元组使用小括号()来表示,元素之间使用逗号(,)隔开, 元素可以是任意的对象,包括数字、字符串、字典、列表等。元组是不可变的,也就是说,一旦创建了元组就不能对其进行修改。 示例: # 元组的创建 tup = (‘apple’, ‘…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部