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中的__init__()方法
May 02 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
python实现手机通讯录搜索功能
Feb 22 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python 实现交换矩阵的行示例
Jun 26 Python
python3.7 的新特性详解
Jul 25 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
浅析python连接数据库的重要事项
Feb 22 Python
Python Matplotlib绘制两个Y轴图像
Apr 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
理解php Hash函数,增强密码安全
2011/02/25 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
微信小程序实现人脸检测功能
2018/05/25 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
python写入已存在的excel数据实例
2018/05/03 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
Python学习之time模块的基本使用
2021/01/17 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
倡导文明标语
2014/06/16 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
大学生入党群众意见书
2015/06/02 职场文书
聘任通知书
2015/09/21 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技