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 30 Python
Python查询IP地址归属完整代码
Jun 21 Python
python版简单工厂模式
Oct 16 Python
浅谈Python中的私有变量
Feb 28 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
python超时重新请求解决方案
Oct 21 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
PIP和conda 更换国内安装源的方法步骤
Sep 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
说明的比较细的php 正则学习实例
2008/07/30 PHP
php获取网页内容方法总结
2008/12/04 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
python中Apriori算法实现讲解
2017/12/10 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
解决Python二维数组赋值问题
2019/11/28 Python
python如何实现复制目录到指定目录
2020/02/13 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
Linux如何压缩可执行文件
2014/03/27 面试题
小学生读书活动总结
2014/06/30 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
旷课检讨书500字
2014/10/14 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
解析Redis Cluster原理
2021/06/21 Redis
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技