美文网首页
Python logging日志记录, since 2022-0

Python logging日志记录, since 2022-0

作者: Mc杰夫 | 来源:发表于2022-04-21 12:14 被阅读0次

(2022.04.21 Thur)
Logging提供的日志记录方式有两种,分别是

  • 模块级别的函数
  • 日志系统的四大组件

日志级别

logging日志分为五个级别,从低到高如下

  • DEBUG: 详细信息,level=10
  • INFO: 普通信息,确认程序如预期运行,level=20
  • WARNING: 警告,表示程序可能发生意想不到的问题,但仍然可以正常运行,level=30
  • ERROR: 错误信息,程序某些功能不能执行,level=40
  • CRITICAL: 严重错误,程序无法继续执行,level=50

默认级别是WARNING。设置了日志级别之后,该级别和高于该级别的信息都可以保存/显示。

日志信息可输出到控制台console,也可输出到指定文件。

import logging
def logging_test():
    logging.debug('this is a debug logging.')
    logging.info('this is an info logging.')
    logging.warning('this is a warning logging.')
    logging.error('this is an error logging.')
    logging.critical('this is a critical logging.')
    return 'done'

调用

>>> logging_test()
WARNING:root:this is a warning logging.
ERROR:root:this is an error logging.
CRITICAL:root:this is a critical logging.
'done'

注意,对logging级别没有设置,所以默认是WARNING,仅显示WARNING, ERROR, CRITICAL三个信息。

日志设置

通过logging.basicConfig可设置,比如

>>> logging.basicConfig(filename='logging_debut.log', level=logging.DEBUG)

可设置的选项包括

  • filename: 保存成的log文件名
  • level: 日志级别
  • filemode: 如果制定了filename,则指定打开模式('w', 'r', 'a'),默认'a'
  • format: 为处理程序使用指定格式的字符串
  • datafmt: 使用time.strftime()所接受的指定日期/时间格式
  • style: 如果指定了格式,则对格式字符串使用此样式,’%’ 用于 printf 样式、’{’ 用于 str.format()、’$’ 用于 string,默认为“%”

指定的格式包括:

  • %(asctime)s: 日志发生的时间
  • %(levelname)s: 日志级别
  • %(message)s: 日志记录的文本内容
  • %(name)s: 所使用的日志器名称,默认'root'
  • %(pathname)s: 日志记录的函数的文件的全路径
  • %(filename)s: 日志记录的函数的文件
  • %(funcName)s: 日志记录的函数的函数名
  • %(lineno)s: 日志记录的代码所在的行号

应用模块级别函数和设置信息生成日志

def test():
    log_format = '%(asctime)s: %(levelname)s - %(message)s'
    log_filename = 'logging_debut_fmt.log'
    logging.basicConfig(filename= log_filename, level=logging.DEBUG, \
                        format=log_format)
    logging.info('instanciate a class')
    a = [1,2,3] 
    logging.debug('instance: '+str(a))
    logging.warning('conduct addition')
    b = [34,5,6]
    logging.critical('b: '+str(b))
    tmp = a+b
    logging.info('results: '+str(tmp))
    return 'done'

查看log文件,logging_debut_fmt.log

$ cat logging_debut_fmt.log
2022-04-21 12:09:26,061: INFO - instanciate a class
2022-04-21 12:09:26,062: DEBUG - instance: [1, 2, 3]
2022-04-21 12:09:26,062: WARNING - conduct addition
2022-04-21 12:09:26,062: CRITICAL - b: [34, 5, 6]
2022-04-21 12:09:26,062: INFO - results: [1, 2, 3, 34, 5, 6]

相关文章

  • Python logging日志记录, since 2022-0

    (2022.04.21 Thur)Logging提供的日志记录方式有两种,分别是 模块级别的函数 日志系统的四大组...

  • Python Logging 指南

    Python Logging 指南 文章翻译自官方文档:Logging HOWTO 基础日志教程 日志记录是一种跟...

  • logging记录日志,使用@log装饰器记录log

    python记录日志 配置logger文件,记录日志 首先导入依赖包import logging #日志impor...

  • Python-Loggin模块

    logging模块 什么是logging模块 logging模块是python提供的用于记录日志的模块 为什么需要...

  • Django中的日志系统章

    Python日志系统 Django使用logging模块记录日志。Python的日志系统分为4块。分别是:logg...

  • 日志模块

    记录日志的类Python 使用logging模块记录日志涉及四个主要类,官方解释: 1.Logger 记录器,暴露...

  • Python常用包

    argparse 用于处理python传入外参数 logging记录日志 datetime 日期时间 json处理...

  • Python日志最佳实践

    本文翻译自logging-cookbook 本文主要讲述一些Python记录日志的最佳实践。 多模块记录日志 多次...

  • Python 中的 logging 模块 学习

    参考资料: Python中的logging模块 python 的日志logging模块学习 python logg...

  • Python中的logging使用

    Python中自带了logging库,可以提供打印日志、记录日志文件、根据时间日志滚动、根据文件大小日志滚动、过期...

网友评论

      本文标题:Python logging日志记录, since 2022-0

      本文链接:https://www.haomeiwen.com/subject/tksiertx.html