Python 内置logging 使用详细介绍

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实现的文本简单可逆加密算法示例

    下面是Python实现的文本简单可逆加密算法示例的完整攻略。 背景信息 文本简单可逆加密算法是一种基于置换和替换思想的加密方法,它通过对明文中的每个字符进行加密,以达到保障通信安全的目的。 步骤说明 定义加密函数,实现加密过程。 def encrypt(text, key): encrypted_text = "" for char in…

    python 2023年6月5日
    00
  • Request的中断和ErrorHandler实例解析

    当我们在使用 Express 发起请求时,请求可能会因为各种原因中断,比如超时、网络连接问题等等。此时,我们就需要捕获对应的错误,为此,Express 提供了一个中间件函数 ErrorHandler。 下面,我们将开始详细讲解“Request的中断和ErrorHandler实例解析”的攻略。攻略分为如下两个部分: Request的中断 ErrorHandle…

    python 2023年5月13日
    00
  • Python socket服务常用操作代码实例

    为了详细讲解 “Python Socket 服务常用操作代码实例”,我们将会分以下几个方面来进行讲解: 什么是 Socket? Python 中 Socket 操作的常用流程 Python 中 Socket 常用操作的代码实例 什么是 Socket? Socket(套接字)是指操作系统提供的用于网络通信的一种机制。通过 Socket,整个网络通信过程变得更加…

    python 2023年6月3日
    00
  • 错误 ALDialog Python Nao

    【问题标题】:Error ALDialog Python Nao错误 ALDialog Python Nao 【发布时间】:2023-04-06 08:17:01 【问题描述】: 在 Python IDE 上使用 ALDialog 模块并在 Nao 上加载时遇到问题。我尝试以不同的方式加载对话,但我总是回到相同的错误。Runtimeerror LoadTop…

    Python开发 2023年4月6日
    00
  • Python脚本实现自动登录校园网

    请看下面我为您详细讲解Python脚本实现自动登录校园网的完整攻略。 一、准备工作 1.1 确认登录方式 要实现自动登录校园网,首先要确认校园网的登录方式,一般来说有以下几种: 基于Web表单的登录:需要提交表单(一般是POST请求)来完成登录。 基于二维码的登录:需要将二维码输入到APP或者微信中才能完成登录。 基于HTTP Basic认证的登录:需要在请…

    python 2023年5月19日
    00
  • 一起来学习Python的列表

    以下是“一起来学习Python的列表”的完整攻略。 1. 列表的概述 在Python中,列表是一种常见的数据结构,用于存储一组有序的数据。列表中的每个元素可以任意类型的数据,例如数字、字符串、布尔值等。列表是可变的,可以动态地添加、删除和修改元素。下面介绍Python列表的相关知识点。 2. 列表的基本操作 2.1 创建列表 在Python中,可以使用方括号…

    python 2023年5月13日
    00
  • Python len()和 sum()

    Python中的len()和sum()函数使用攻略 在Python中,len()和sum()函数是非常常用的两个函数。它们分别用于计算对象的长度和元素的总和。下面,我们将详细讲解这两个函数的使用方法。 len()函数 len()函数用于计算对象的长度,主要用于字符串、列表、元组、字典、集合等对象。下面,我们来看一些示例说明。 1. 计算字符串长度 text …

    python-answer 2023年3月25日
    00
  • Python 正则表达式匹配数字及字符串中的纯数字

    Python正则表达式匹配数字及字符串中的纯数字攻略 本攻略将详细讲解如何使用Python正则表达式匹配数字及字符串中的纯数字。包括则表达式的基本语法、常用的正则表达式模式、以及如何在Python中使用正则表达式。 正表达式基本语法 正则表达式是一种用于匹配文本的模式。在Python中,我们可以使用re模块来使用正则表达式。下面是一些常用的正则表达式基本语:…

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