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中defaultdict与lambda表达式用法实例小结
Apr 09 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 Python
Python中Subprocess的不同函数解析
Dec 10 Python
kafka-python 获取topic lag值方式
Dec 23 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Python批量处理csv并保存过程解析
May 16 Python
python模块如何查看
Jun 16 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
通过Python pyecharts输出保存图片代码实例
Nov 25 Python
Python基本数据类型之字符串str
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中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
php无序树实现方法
2015/07/28 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
php之可变变量的实例详解
2017/09/12 PHP
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Python生成器generator用法示例
2018/08/10 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
python numpy 反转 reverse示例
2019/12/04 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
复古服装:RetroStage
2019/05/10 全球购物
Linux的文件类型
2016/07/05 面试题
财务总监管理职责范文
2014/03/09 职场文书
服务承诺书范文
2014/05/19 职场文书
导师就业推荐信范文
2014/05/22 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
城管年度个人总结
2015/02/28 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
Windows server 2012搭建FTP服务器
2022/04/29 Servers
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技