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利用elaphe制作二维条形码实现代码
May 25 Python
python实现基本进制转换的方法
Jul 11 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
python使用fork实现守护进程的方法
Nov 16 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
python读写csv文件实例代码
Jul 05 Python
python输出数学符号实例
May 11 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
pandas to_excel 添加颜色操作
Jul 14 Python
如何Tkinter模块编写Python图形界面
Oct 14 Python
Python3中最常用的5种线程锁实例总结
Jul 07 Python
python保存图片的四个常用方法
Feb 28 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
如何使用PHP中的字符串函数
2006/10/09 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Python封装原理与实现方法详解
2018/08/28 Python
python学生管理系统学习笔记
2019/03/19 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python如何实现的二分查找算法
2020/05/27 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
说出一些常用的类,包,接口
2014/09/22 面试题
毕业生就业推荐信范文
2013/12/01 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
工作求职自荐信
2014/06/13 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
优秀大学生自荐信
2015/03/26 职场文书
小学运动会宣传稿
2015/07/23 职场文书
网络研修随笔感言
2015/11/18 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python