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中fileno()方法的使用
May 24 Python
使用Python脚本将文字转换为图片的实例分享
Aug 29 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
Python多进程并发与多线程并发编程实例总结
Feb 08 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Python实现多线程的两种方式分析
Aug 29 Python
Python根据服务获取端口号的方法
Sep 25 Python
python中文分词库jieba使用方法详解
Feb 11 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
python实现IOU计算案例
Apr 12 Python
有关pycharm登录github时有的时候会报错connection reset的问题
Sep 15 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警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
初学Javascript的一些总结
2008/11/03 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
Python实现简单登录验证
2016/04/13 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
Python编程之string相关操作实例详解
2017/07/22 Python
Python中协程用法代码详解
2018/02/10 Python
python3处理含有中文的url方法
2018/05/10 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python程序变成软件的实操方法
2019/06/24 Python
Django模板Templates使用方法详解
2019/07/19 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
python简单实现插入排序实例代码
2020/12/16 Python
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
如何在Shell脚本中使用函数
2015/09/06 面试题
硕士研究生就业推荐信
2014/05/18 职场文书
创建文明城市倡议书
2015/04/28 职场文书
初级职称评定工作总结
2015/08/13 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
mysql幻读详解实例以及解决办法
2022/06/16 MySQL