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实现文件内容批量追加的方法示例
Aug 29 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
python 类之间的参数传递方式
Dec 20 Python
Python文件操作函数用法实例详解
Dec 24 Python
python如何变换环境
Jul 21 Python
Python eval函数介绍及用法
Nov 09 Python
python RSA加密的示例
Dec 09 Python
Python+Appium实现自动抢微信红包
May 21 Python
python 爬取华为应用市场评论
May 29 Python
python创建字典及相关管理操作
Apr 13 Python
Python first-order-model实现让照片动起来
Jun 25 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文件上传实例详解!!!
2007/01/02 PHP
php&mysql 日期操作小记
2012/02/27 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
PHP中的Memcache详解
2014/04/05 PHP
php常用字符函数实例小结
2016/12/29 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
js实现简易计算器功能
2019/10/18 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
Numpy之random函数使用学习
2019/01/29 Python
使用django实现一个代码发布系统
2019/07/18 Python
解决python flask中config配置管理的问题
2019/07/26 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
工作自我评价分享
2013/12/01 职场文书
化学教师自荐信范文
2013/12/28 职场文书
小学新学期寄语
2014/04/02 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python