python日志模块logbook使用方法


Posted in Python onSeptember 19, 2019

python自带了日志模块logging,可以用来记录程序运行过程中的日志信息。同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此本文介绍一下python logbook模块的使用方法。

1,安装

pip install logbook

官方的使用文档,这里

2,使用方法如下:

文件 logconf.py 初始化日志以及设置日志格式等参数:

import sys
import os
import logbook
import logbook.more
def logFormate(record,handler):
  formate = "[{date}] [{level}] [{filename}] [{func_name}] [{lineno}] {msg}".format(
    date = record.time,               # 日志时间
    level = record.level_name,            # 日志等级
    filename = os.path.split(record.filename)[-1],  # 文件名
    func_name = record.func_name,          # 函数名
    lineno = record.lineno,             # 行号
    msg = record.message               # 日志内容
  )
  return formate
def initLogger(filename,fileLogFlag=True,stdOutFlag=False):
  LOG_DIR = os.path.join('log')
  if not os.path.exists(LOG_DIR):
    os.makedirs(LOG_DIR)
  logbook.set_datetime_format('local')
  logger = logbook.Logger(filename)
  logger.handlers = []
  if fileLogFlag:#日志输出到文件
    logFile = logbook.TimedRotatingFileHandler(os.path.join(LOG_DIR, '%s.log' % 'log'),date_format='%Y-%m-%d', bubble=True, encoding='utf-8')
    logFile.formatter = logFormate
    logger.handlers.append(logFile)
  if stdOutFlag:#日志打印到屏幕
    logStd = logbook.more.ColorizedStderrHandler(bubble=True)
    logStd.formatter = logFormate
    logger.handlers.append(logStd)
  return logger

1,该文件中logFormate函数设置日志的输出格式。

2,initLogger函数中fileLogFlag为日志写入文件标示。

3,initLogger函数中stdOutFlag标示日志打印到终端标示。

上述参数可以根据实际的情况进行设置。

文件globalConf.py将logger定义为一个供其他所有模块使用全局公共变量,因此单独设置该文件,供其他文件引用。

import logconf
class ShareLogger:
 logger = logconf.initLogger('log.txt',True,True)
 
def getShareLogger():
 return ShareLogger.logger
def setShareLogger(logger):
 ShareLogger.logger = logger

文件test.py 为日志具体使用示例文件:

import sys
import os
import globalConf
global logger
logger = globalConf.getShareLogger()
if __name__ == "__main__":
 logger.info("this is info")
 logger.warning("this iswarning")
 logger.debug("this is debug")
 logger.critical("this is critical")

该文件中调用globalConf.py,获取logger日志变量,根据不同的日志等级进行记录。logbook模块的日志等级说明,见这里。

logbook.CRITICAL     严重错误信息
logbook.ERROR       一般错误信息
logbook.WARNING     警告信息
logbook.INFO   正常的记录信息
logbook.DEBUG  调试程序输出的信息
logbook.NOTSET      正常的记录信息

在程序运行起来之后,可以查看存储的日志文件,都会按照上述的日志格式进行记录。

总结

以上所述是小编给大家介绍的python日志模块logbook使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
举例讲解Python编程中对线程锁的使用
Jul 12 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
Python列表list排列组合操作示例
Dec 18 Python
python实现桌面壁纸切换功能
Jan 21 Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 Python
Python操作Excel把数据分给sheet
May 20 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
python计算列表元素与乘积详情
Aug 05 Python
python统计指定目录内文件的代码行数
Sep 19 #Python
python如何从文件读取数据及解析
Sep 19 #Python
python实现代码统计器
Sep 19 #Python
python实现代码统计程序
Sep 19 #Python
python tkinter图形界面代码统计工具(更新)
Sep 18 #Python
python3获取url文件大小示例代码
Sep 18 #Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 #Python
You might like
中英文字符串翻转函数
2008/12/09 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
js实现继承的方法及优缺点总结
2019/05/08 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
如何理解python面向对象编程
2020/06/01 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
《老王》教学反思
2014/02/23 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
公司费用报销管理制度
2015/08/04 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书