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日

相关文章

  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题

    Python3中内置类型bytes和str用法及byte和string之间各种编码转换是一个非常重要的问题,本文将为大家详细讲解。 bytes和str的用法 Python3中有两种表示文本的类型,分别是bytes和str。 str表示的是Unicode字符串,它的用法非常类似于Python2中的字符串类型;而bytes表示的是二进制数据,它的每个元素都是一个…

    python 2023年5月31日
    00
  • python requests post的使用方式

    下面是关于“python requests post的使用方式”的完整攻略。 什么是Python Requests? Python Requests 是一个用于 HTTP 请求的 Python 实现,它启用了你与互联网的连接。使用 Requests 开发者可以向任何网站发起 GET 或 POST 请求并获得响应结果,Requests 对网络请求的封装性非常好…

    python 2023年6月3日
    00
  • Python编程实现下载器自动爬取采集B站弹幕示例

    下面是“Python编程实现下载器自动爬取采集B站弹幕示例”的完整攻略。 简介 在本文中,我们将使用Python语言编写一个自动爬取采集B站弹幕的下载器。其中,我们会使用到一些Python中流行的库,例如requests、BeautifulSoup和pandas等。总体流程包含了以下几个步骤: 获取B站视频的aid编号和cid编号 通过B站的API获取弹幕文…

    python 2023年6月13日
    00
  • 解决Windows下python和pip命令无法使用的问题

    解决Windows下python和pip命令无法使用的问题 在Windows系统中,有时候我们会遇到无法使用python和pip命令的问题。本文将详细讲解如何解决Windows下python和pip命令无法使用的问题,包括环境变量的设置和两个示例。 环境变量设置 在Windows系统中,我们需要将Python和pip的路径添加到系统环境变量中,才能在任何位置…

    python 2023年5月13日
    00
  • 在Python下使用Txt2Html实现网页过滤代理的教程

    使用Txt2Html实现网页过滤代理的教程 1. 简介 Txt2Html是一个将纯文本文件转换为HTML格式的工具,可以快速将txt格式的文件转换为html格式的文件。在Python下使用Txt2Html可以实现网页过滤代理的功能,将一些敏感信息进行过滤,然后再通过代理将过滤后的内容转发出去。下面是详细教程。 2. 安装Txt2Html 使用pip命令安装T…

    python 2023年5月18日
    00
  • python安装模块如何通过setup.py安装(超简单)

    下面是关于“Python安装模块如何通过setup.py安装”的完整攻略。 1. 准备工作 在使用setup.py安装Python模块之前,需要确保以下几个条件已经满足: 已经安装了Python环境 已经使用pip安装了setuptools模块和wheel模块 如果你的环境满足了以上两个条件,那么就可以继续往下看了。 2. 编写setup.py脚本 在安装P…

    python 2023年5月14日
    00
  • 详解Python 序列化结果

    Python 中的序列化是指将内存中的对象转换成可存储或可传输的数据格式。Python 中常用的序列化格式有两种:pickle 和 JSON。下面就分别从它们两个的用法、优缺点以及注意事项进行详细的讲解。 使用pickle进行序列化 pickle 是 Python 自带的序列化模块,它可以将 Python 对象序列化成一个二进制对象(也就是字符串),并可以将…

    python-answer 2023年3月25日
    00
  • python对指定字符串逆序的6种方法(小结)

    Python对指定字符串逆序的6种方法(小结) 在Python中,有多种方法可以将指定的字符串逆序,本文将总结并介绍其中的六种方法。 1.使用字符串切片 def reverse_str_by_slice(str): return str[::-1] 示例1: s = "hello, world!" print(reverse_str_by…

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