Python 内置logging 使用详细介绍

yizhihongxing

Python 内置logging 使用详细介绍

简介

logging 是 Python 内置的标准日志记录库,可以方便地将应用程序的日志输出到文件、sys.stderr 或者系统日志或者网络中,而且logging记录器(logger)提供了日志级别(level)区分,这方便了输出多种程度的日志。

logging模块的使用

logging库的基本用法:

1.创建一个 logger。

2.指定 logger 输出格式。

3.创建一个输出到文件的 handler。

4.定义 log 的级别。

5.将 handler 添加到 logger 中。

6.使用 logger 的几个方法输出日志。

示例1:简单使用

下面是一个简单的 logging 应用实例。

import logging

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s [%(levelname)s] %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    filename='/tmp/myapp.log',
                    filemode='a')

logging.info('Start app')
logging.warning('Something maybe fail.')
logging.debug('Debugging')
logging.info('Finish')

上面代码说明:

1.日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义级别。

2.日志信息通过 %(key)s 来代表对应的信息,这些信息在实际生成日志时,会替换为相应的内容,可以自由命名。

3.format 为输出的格式,如上例所示,输出的日志格式为时间,日志级别,和日志信息。

4.datefmt 用于指定输出格式中时间格式。

5.filename 指定日志输出文件。

6.filemode 可指定日志文件的打开模式是 append 还是覆盖。

示例2:advanced configuration

使用 basicConfig 的方法能满足基本的需求,但复杂的应用程序经常需要细节控制和更大的灵活性。下面是每个 logging 组件的对象关系:

Loggers       处理程序1           处理程序2
+--------+    +--------+          +--------+
| My App |----| Handler|          | Handler|
+--------+    +--------+          +--------+
                Formatter         Formatter

下面是一个创建这样的结构的示例:

import logging.config

logging.config.fileConfig('logging.conf')

# create logger
logger = logging.getLogger('simpleExample')

# log messages
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

logging.conf 是进行高级配置的主要方式,我们能完全控制日志记录的行为,包括将日志记录写入多个文件中、配置按大小和时间进行轮换的日志记录处理器、过滤或修改事件。

同时 logging 提供了一些关键组件的相关方法,包括:Filter、Formatter、Handler、Logger 和 LogRecord。

  • Filter类允许您更细致地控制哪些日志记录会被发送到哪些处理程序。
  • Formatter类定义日志记录输出的实际格式。该类支持任意数量和类型的参数。
  • Handler类定义特定日志记录输出的目的地,例如文件、网络套接字或控制台。计划支持更多处理程序类型。
  • Logger类代表生成记录消息的源。主要任务是将这些记录消息发送到适当的处理程序。一个Logger实例可以有许多处理程序。
  • LogRecord是将记录请求转换为日志记录的工厂方法。一些底层库可能发出为记录请求格式化的原始字符串,而不是具有格式数据的有效字典。

结论

使用 Python 内置的 logging 库能够帮助开发者实现自由度较高的日志记录,不但能日志记录输出到多种形式中,还能自己控制相应的日志等级和格式等配置信息,便于开发者调试应用程序(Debugging),更方便地定位问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 内置logging 使用详细介绍 - Python技术站

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

相关文章

  • Python figure参数及subplot子图绘制代码

    下面就对这个问题进行详细讲解。 1. Python中的figure参数 在Python的matplotlib库中,figure参数指代的是整个图形对象的定义,它可以控制图形的大小、分辨率、背景色等属性。首先需要创建一个figure对象,然后在对象上进行绘图即可。 下面给出一个示例代码,展示如何创建一个figure对象: import matplotlib.p…

    python 2023年5月19日
    00
  • 全面分析Python的优点和缺点

    全面分析Python的优点和缺点 优点 简单易学:Python语法简洁清晰,语言结构非常简单,易于学习。 开发效率高:Python拥有丰富的类库和开发工具,可以极大地提高开发效率。 跨平台性好:Python是一款跨平台语言,可以在Windows、Linux、Mac OS等多种操作系统上运行,具有良好的可移植性。 大量第三方库:Python拥有大量的第三方库,…

    python 2023年5月30日
    00
  • 在Python中使用NumPy生成Hermite_e多项式的伪Vandermonde矩阵

    生成Hermite_e多项式的伪Vandermonde矩阵需要使用NumPy的ploy.hermite_e函数。具体步骤如下: 导入NumPy库和ploy.hermite_e函数 import numpy as np from numpy.polynomial.hermite_e import hermite_e 定义生成伪Vandermonde矩阵的函数 …

    python-answer 2023年3月25日
    00
  • 教你学会使用Python正则表达式

    教你学会使用Python正则表达式 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。Python中的re模块供了正则表达式支持,方便进行字符串的处理。本文详细讲解Python中正则表达式的使用方法,包括正表达式语法、re模块的常用函数以及两个用配实例。 正则表达式语法 正则表达式由些特殊字符和普通字符组成,用于字符串模式匹。下面…

    python 2023年5月14日
    00
  • 简单实现python爬虫功能

    要实现Python爬虫功能,可以参考以下步骤: 1. 确定目标网站和需求 首先需要确定要爬取的网站和需要获取的数据类型,比如新闻信息、商品价格等。在确定目标和需求后,可以开始编写代码。 2. 安装所需模块 可利用pip命令安装所需模块,比如requests、bs4、urllib等。例如,安装requests模块: pip install requests 3…

    python 2023年5月14日
    00
  • Python中常见的反爬机制及其破解方法总结

    Python中常见的反爬机制及其破解方法总结 1. 反爬机制简介 随着互联网技术的快速发展,数据量剧增,各种网络爬虫不断涌现,研究数据更成为人们的一项重要工作。然而,由于缺乏有效的反爬机制,爬虫爬取数据也变得越来越容易,因此各大网站也都升级了自己的反爬手段,以抵御爬虫。常见的反爬手段有以下几种: IP封禁:对频繁访问、请求量过大的IP地址进行屏蔽。 User…

    python 2023年5月14日
    00
  • django实现web接口 python3模拟Post请求方式

    Django 实现 Web 接口 Python3 模拟 POST 请求方式 在 Django 中,可以使用 Python3 模拟 POST 请求方式来实现 Web 接口。以下是 Django 实现 Web 接口 Python3 模拟 POST 请求方式的方法。 1. 创建视图函数 首先,我们需要创建一个视图函数来处理 POST 请求。以下是一个处理 POST…

    python 2023年5月15日
    00
  • python文件的md5加密方法

    下面是关于Python文件的MD5加密方法的完整攻略,具体步骤如下。 1. 导入hashlib模块 在Python中,想要使用MD5加密必须要先导入hashlib模块。 import hashlib 2. 读取文件内容 使用Python的open()函数读取文件内容。以读取文本文件example.txt为例: with open(‘example.txt’,…

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