Python logging模块用法示例


Posted in Python onAugust 28, 2018

本文实例讲述了Python logging模块用法。分享给大家供大家参考,具体如下:

logging模块

函数式简单配置

import logging
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

  • filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
  • filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
  • format:指定handler使用的日志显示格式。
  • datefmt:指定日期时间格式。
  • level:设置rootlogger(后边会讲解具体概念)的日志级别
  • stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),默认为sys.stderr。若同时列出了filenamestream两个参数,则stream参数会被忽略。

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

%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s 用户输出的消息

logging库提供了多个组件:LoggerHandlerFilterFormatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。另外,可以通过:logger.setLevel(logging.Debug)设置级别,当然,也可以通过fh.setLevel(logging.Debug)单对文件流设置某个级别。

def my_logger(filename,leval,file = True,stream = True):
  logger = logging.getLogger()
  formatter = logging.Formatter (fmt = '%(asctime)s--%(message)s----%(name)s--%(levelname)s--%(lineno)d',
                  datefmt = '%d/%m/%y %H:%M:%S')
  logger.setLevel(leval)
  if file:
    file_handler = logging.FileHandler(filename, encoding='utf-8')
    logger.addHandler(file_handler)
    file_handler.setFormatter(formatter)
  if stream:
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    logger.addHandler(stream_handler)
  return logger
logger = my_logger('logging',logging.DEBUG)
logger.warning('warn!!!')

运行结果:

28/08/18 09:48:53--warn!!!----root--WARNING--27

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之一个免费的实验室
Sep 14 Python
Python RuntimeError: thread.__init__() not called解决方法
Apr 28 Python
Python循环语句之break与continue的用法
Oct 14 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
python 决策树算法的实现
Oct 09 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 Python
opencv读取视频并保存图像的方法
Jun 04 Python
Django模型层实现多表关系创建和多表操作
Jul 21 Python
Python异常处理操作实例详解
Aug 28 #Python
Python封装原理与实现方法详解
Aug 28 #Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 #Python
python中cPickle类使用方法详解
Aug 27 #Python
python散点图实例之随机漫步
Aug 27 #Python
python3.5绘制随机漫步图
Aug 27 #Python
Python反射和内置方法重写操作详解
Aug 27 #Python
You might like
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
学习Vue组件实例
2018/04/28 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python实现电脑自动关机
2018/06/20 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
python爬虫可以爬什么
2020/06/16 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
农业开发项目建议书
2014/05/16 职场文书
先进集体申报材料
2014/12/25 职场文书
骨干教师考核评语
2014/12/31 职场文书
工作岗位职责范本
2015/02/15 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python