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的源码来解析Python下的freeblock
May 11 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
python版本的读写锁操作方法
Apr 25 Python
vscode 远程调试python的方法
Dec 01 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Numpy之random函数使用学习
Jan 29 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
python修改文件内容的3种方法详解
Nov 15 Python
python range实例用法分享
Feb 06 Python
Python控制台实现交互式环境执行
Jun 09 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 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的图形函数中显示汉字
2006/10/09 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
Python爬取国外天气预报网站的方法
2015/07/10 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
Python面向对象编程基础实例分析
2020/01/17 Python
keras中的backend.clip用法
2020/05/22 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
医院门卫岗位职责
2013/12/30 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
大跃进口号
2014/06/16 职场文书
新学期标语
2014/06/30 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
辞职信格式模板
2015/02/27 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP