Python常用模块logging——日志输出功能(示例代码)

一、Python常用模块logging——日志输出功能

Python有一个称之为logging的标准库,可对Python程序进行日志输出,并输出至控制台或者存储于文件中。日志输出可分为不同的等级(debug、info、warning、error、critical),并可对输出进行格式化。logging模块是Python中非常常用的一个模块,几乎所有的应用程序都需要记录日志。下面介绍一下logging模块常用的功能和代码示例。

二、使用举例

(1)基本使用示例

下面是一个基本的logger使用示例代码:

import logging

def test_log():
    # 日志文件存放路径
    LOG_FILE_PATH = 'test.log'

    # getLogger获取日志logger
    logger = logging.getLogger()

    # 设置日志记录等级
    logger.setLevel(logging.INFO)

    # 创建输出格式:时间、日志等级、日志内容
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')

    # 设置控制台输出
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(formatter)

    # 设置文件输出
    file_handler = logging.FileHandler(filename=LOG_FILE_PATH, mode='a')
    file_handler.setFormatter(formatter)

    # 将设置好的输出处理器添加到logger
    logger.addHandler(console_handler)
    logger.addHandler(file_handler)

    # 进行日志输出
    logger.info('Hello, world!')

test_log()

代码说明:

  1. getLogger获取logger对象;
  2. 设置日志记录等级为INFO,即输出INFO、WARNNING、ERROR、CRITICAL等级的日志;
  3. 设定日志输出格式,并设置表现形式(这里为时间、日志等级、日志内容);
  4. 设置控制台输出和文件输出;
  5. 利用addHandler把已经设置好输出格式的控制台输出和文件输出,加入到logger中;
  6. 最后利用logger.info、logger.warning、logger.error、logger.critical等方法输出日志。

(2)记录不同等级的日志

下面介绍如何记录不同等级的日志。

# 编写日志记录器
logger = logging.getLogger('daily_logger')
logger.setLevel(logging.DEBUG)

# 创建handler(记录日志等级 >= DEBUG)
fh = logging.FileHandler('debug.log')
fh.setLevel(logging.DEBUG)

# 创建handler(记录日志等级 >= INFO)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

# 创建formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 添加formatter到handler
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 添加handler到logger
logger.addHandler(fh)
logger.addHandler(ch)

# 几种日志输出方式
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')

代码说明:

  1. getLogger获取logger对象;
  2. 设置日志记录等级为DEBUG,即输出DEBUG、INFO、WARNNING、ERROR、CRITICAL等级的日志;
  3. 创建记录DEBUG级别日志的文件输出handler;
  4. 创建记录INFO级别日志的控制台输出handler;
  5. 创建日志formatter;
  6. 设置handler的formatter;
  7. 利用addHandler把已经设置好输出格式的控制台输出和文件输出,加入到logger中;
  8. 最后利用logger.debug、logger.info、logger.warning、logger.error、logger.critical等方法输出日志。其中output输出方式可以在handler中设置。

三、总结

以上是Python中日志输出功能的介绍和示例,logging模块提供了丰富的日志输出功能,灵活的应用logging模块可以实现简单的日志输出和复杂的日志分析与统计等功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python常用模块logging——日志输出功能(示例代码) - Python技术站

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

相关文章

  • Selenium+Python自动化脚本环境搭建的全过程

    下面是Selenium+Python自动化脚本环境搭建的全过程: 准备工作 安装Python 首先需要安装Python。可以从官方网站 https://www.python.org/downloads/ 下载,建议下载最新的稳定版。安装时需要注意设置环境变量。 安装pip pip 是 Python 包管理工具,通过它可以方便地下载并安装 Python 包。在…

    python 2023年5月19日
    00
  • python使用cartopy库绘制台风路径代码

    请看下文。 Python使用Cartopy库绘制台风路径代码(完整攻略) 概述 Cartopy是一个Python库,用于绘制地图数据,并可与质量高的地理数据源进行交互。 使用Cartopy库,我们可以在地图上绘制气象数据,因此可以用它来绘制台风路径地图。 本文将提供详细步骤和示例说明,以协助进行台风路径地图的绘制。 步骤 步骤1:安装Cartopy库 使用p…

    python 2023年6月3日
    00
  • TypeError:“函数”对象不可下标 – Python

    【问题标题】:TypeError: ‘function’ object is not subscriptable – PythonTypeError:“函数”对象不可下标 – Python 【发布时间】:2023-04-02 15:40:01 【问题描述】: 我已尝试使用此代码解决作业: bank_holiday= [1, 0, 1, 1, 2, 0, 0,…

    Python开发 2023年4月8日
    00
  • Python中根据时间自动创建文件夹的代码实现

    下面是针对Python中根据时间自动创建文件夹的代码实现的完整攻略: 1. 原理说明 在Python中,我们可以通过调用time模块中的time()函数来获取当前的时间戳,并通过datetime模块中的datetime类来将时间戳转化为格式化的日期数据。 接下来,我们可以将这些日期数据拼接成一个指定的文件夹路径,并通过调用os模块中的makedirs()函数…

    python 2023年5月19日
    00
  • 关于python3.9安装wordcloud出错的问题及解决办法

    在Python3.9中安装wordcloud模块时,有时会遇到各种各样的错误。其中一个常见的错误是error: Microsoft Visual C++ 14.0 is required,这错误通常是由于缺少Microsoft Visual C++ 14.0运行库引起的。攻略将提供关于Python3.9安装word出错的问题及解决办法,包括常见错误类型和解决…

    python 2023年5月13日
    00
  • Python 发送邮件方法总结

    Python 发送邮件是一项非常常用的操作,本文将对 Python 发送邮件的方法进行详细、全面的介绍,包括邮件的基本原理、Python 发送邮件的三种方法以及常见错误及解决方案。 邮件的基本原理 在介绍 Python 发送邮件的方法前,我们需要了解邮件发送的基本过程和原理。邮件发送的过程可以简单归纳为以下几个步骤: 用户通过邮件客户端编写邮件,并提交邮件到…

    python 2023年6月5日
    00
  • Python list和str互转的实现示例

    以下是详细讲解“Python list和str互转的实现示例”的完整攻略。 Python list和str互转 在Python中,我们经常需要将list和str类型相互转换。下面将分别介绍如何将list转换str,以及如何将str转换为list。 list转str 将list转换为str可以使用join()方法,该方法将列表中的元素连接成一个字符串。下面是一…

    python 2023年5月13日
    00
  • python基础之类型转换函数

    以下是“Python基础之类型转换函数”的详细攻略。 Python基础之类型转换函数 在Python中,类型转换函数是将一个数据类型转换为另一个数据类型的函数。Python提供了几个内置的类型转换函数,包括int()、float()、str()、bool()等。下面我们将详细介绍这些类型转换函数。 int() int()函数用于将一个字符串或浮点数转换为整数…

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