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实现递归遍历文件夹并删除文件
Apr 18 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
简单了解python高阶函数map/reduce
Jun 28 Python
python Django的web开发实例(入门)
Jul 31 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
python中使用input()函数获取用户输入值方式
May 03 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
python pillow库的基础使用教程
Jan 13 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
很好用的PHP数据库类
2009/05/27 PHP
php Smarty 字符比较代码
2011/02/27 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
php+mysql实现无限级分类
2015/11/11 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
Python中splitlines()方法的使用简介
2015/05/20 Python
python线程、进程和协程详解
2016/07/19 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
python打包生成so文件的实现
2020/10/30 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
2014年宣传部工作总结
2014/11/12 职场文书
2015年小学开学寄语
2015/02/27 职场文书
教师辞职信范文
2015/02/28 职场文书
小学运动会开幕词
2016/03/04 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android