文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python标准库--logging模块

2023-01-30 21:56

关注

logging模块的几个级别,默认情况下Logging模块有6个级别,代码如下

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import logging
print(logging.NOTSET)
print(logging.DEBUG)
print(logging.INFO)
print(logging.WARNING)
print(logging.ERROR)
print(logging.CRITICAL)

结果为下

blob.png

它们的值为0-50(也可以自定义级别),这些级别的用处是,先将自己的日志定一个级别,logging模块发出的信息级别高于定义的级别,将在标准输出(屏幕)显示出来,发出的信息级别低于定义的级别则忽略,如果未定义级别,默认定义的级别是WARNING

使用logging最简单的方法就是logging.basicConfig([**kwargs])

这个函数可用的参数有

filename     用指定的文件名创建FiledHandler(后面会具体讲解handler的概念),这样日志会被存储在指定的文件中

filemode     文件打开方式,在指定了filename时使用这个参数,默认值为'a'还可以指定为'w'

datefmt      指定日期时间格式

level            设置rootlogger(后面会具体讲到)的日志级别

stream        用指定的stream创建streamhandler,可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr,若同时列出了filename和stream两个参数,则stream参数会被忽略


参数中的format参数可能用到的格式化串

%(name)s:   Logger的名字

%(levelno)s:   数字形式的日志级别

%(levelname)s:   文本形式的日志级别

%(pathname)s:   调用日志输出函数的模块的完整路径名

%(filename)s:   调用日志输出函数的模块的文件名

%(module)s:   调用日志输出函数的模块名

%(funcname)s:   调用日志输出函数的函数名

%(lineno)d:   调用日志输出函数的语句所在的代码行

%(created)f:   当前时间,用unix标准的表示时间的浮点数表示

%(asctime)s:   字符串形式的当前时间,默认格式是'20017-07-08 16:49:45,896' 逗号后面的是毫秒

%(message)s:   用户输出的消息


参数中的datefmt是日期的格式化,最常用的几个格式化是:

%Y:   年份的长格式,如2017

%y:   年份的短格式,如 17

%m:   月份,01~12

%d:   日期,01~31

%H:   小时,0~23

%w:   星期,0~6,星期天是0

%M:   分钟,00~59

%S:   秒,00~59


下面利用logging.basicConfig写个最基本的日志模块应用程序中,编写testLogging.py代码如下

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import logging
class TestLogging(object):
    def __init__(self):
        logFormat = '%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s'
        logFilename = 'testlog.txt'
        logging.basicConfig(level=logging.INFO, format=logFormat, filename=logFilename, filemode='w')
        logging.debug('debug message')
        logging.info('info message')
        logging.warning('warning message')
        logging.error('error message')
        logging.critical('critical message')

if __name__ == '__main__':
    tl = TestLogging()

运行程序,会在当前目录下生成一个testlog.txt文件,内容如下

blob.png

默认的logging级别是logging.INFO,而logging.debug的级别低于logging.INFO,所有没有显示logging.debug的内容

在程序中关键位置插入log信息,执行python程序时出现什么问题。可以直接查找日志文件,无须再一步步地debug试调


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯