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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
python输出指定月份日历的方法
Apr 23 Python
Python打印“菱形”星号代码方法
Feb 05 Python
Python3.5集合及其常见运算实例详解
May 01 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
使用Python将语音转换为文本的方法
Aug 10 Python
python利用线程实现多任务
Sep 18 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的5个安全措施小结
2012/07/17 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
python清理子进程机制剖析
2017/11/23 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
Python 下载及安装详细步骤
2019/11/04 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
电工技术比武方案
2014/05/11 职场文书
主题党日活动总结
2014/07/08 职场文书
我的中国心演讲稿
2014/09/04 职场文书
西柏坡导游词
2015/02/05 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书