签到成功

知道了

CNDBA社区CNDBA社区

Python logging模块

2022-02-04 13:27 27254 0 原创 Python
作者: hbhe0316

程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging 模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。

http://www.cndba.cn/hbhe0316/article/106602
http://www.cndba.cn/hbhe0316/article/106602
http://www.cndba.cn/hbhe0316/article/106602

使用 Python Logging 模块的主要好处是所有 Python 模块都可以参与日志记录
Logging 模块提供了大量具有灵活性的功能
日志记录函数以它们用来跟踪的事件的级别或严重性命名。下面描述了标准级别及其适用性(从高到低的顺序):

http://www.cndba.cn/hbhe0316/article/106602

日志等级(level) 描述
DEBUG 最详细的日志信息,典型应用场景是 问题诊断
INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息http://www.cndba.cn/hbhe0316/article/106602

日志级别等级排序:critical > error > warning > info > debughttp://www.cndba.cn/hbhe0316/article/106602http://www.cndba.cn/hbhe0316/article/106602

级别越高打印的日志越少,反之亦然,即http://www.cndba.cn/hbhe0316/article/106602

http://www.cndba.cn/hbhe0316/article/106602

debug : 打印全部的日志( notset 等同于 debug )
info : 打印 info, warning, error, critical 级别的日志
warning : 打印 warning, error, critical 级别的日志
error : 打印 error, critical 级别的日志
critical : 打印 critical 级别

一、 Logging 模块日志记录方式
Logging 模块提供了两种日志记录方式:

http://www.cndba.cn/hbhe0316/article/106602

一种方式是使用 Logging 提供的模块级别的函数
另一种方式是使用 Logging 日志系统的四大组件记录
1、Logging 定义的模块级别函数
函数 说明
logging.debug(msg, args, **kwargs) 创建一条严重级别为DEBUG的日志记录
logging.info(msg,
args, kwargs) 创建一条严重级别为INFO的日志记录
logging.warning(msg, *args,
kwargs) 创建一条严重级别为WARNING的日志记录
logging.error(msg, args, **kwargs) 创建一条严重级别为ERROR的日志记录
logging.critical(msg,
args, kwargs) 创建一条严重级别为CRITICAL的日志记录
logging.log(level, *args,
kwargs) 创建一条严重级别为level的日志记录
logging.basicConfig(**kwargs) 对root logger进行一次性配置

import logging

# 打印日志级别
def test_logging():
    logging.basicConfig(level=logging.DEBUG)
    logging.debug('Python debug')
    logging.info('Python info')
    logging.warning('Python warning')
    logging.error('Python Error')
    logging.critical('Python critical')
    logging.log(2, 'test')


def main():
    test_logging()

if __name__ == "__main__":
    main()

版权声明:本文为博主原创文章,未经博主允许不得转载。

Python

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:2640819次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ