前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python标准库--logging模块

python标准库--logging模块

作者头像
py3study
发布2018-08-02 15:22:36
3760
发布2018-08-02 15:22:36
举报
文章被收录于专栏:python3

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

代码语言:javascript
复制
#!/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
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代码如下

代码语言:javascript
复制
#!/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
blob.png

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/12/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档