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使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
使用Python压缩和解压缩zip文件的教程
May 06 Python
利用python获取Ping结果示例代码
Jul 06 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
Python 函数基础知识汇总
Mar 09 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
将python安装信息加入注册表的示例
Nov 20 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
python对execl 处理操作代码
Jun 22 Python
python两个list[]相加的实现方法
Sep 23 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的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
用python代码做configure文件
2014/07/20 Python
python端口扫描系统实现方法
2014/11/19 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
pytorch进行上采样的种类实例
2020/02/18 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
数据库基础的一些面试题
2012/02/25 面试题
公司外出活动方案
2014/08/14 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
高中团支书竞选稿
2015/11/21 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python