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 相关文章推荐
Python多线程实例教程
Sep 06 Python
Python对象转JSON字符串的方法
Apr 27 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
pyqt5自定义信号实例解析
Jan 31 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
wxPython之wx.DC绘制形状
Nov 19 Python
使用python的pyplot绘制函数实例
Feb 13 Python
Django接收照片储存文件的实例代码
Mar 07 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
Python pip安装模块提示错误解决方案
May 22 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
python解析xml文件实例分析
2015/05/27 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
人工神经网络算法知识点总结
2019/06/11 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
迪奥美国官网:Dior美国
2019/12/07 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
酒店副总经理岗位职责范本
2014/02/04 职场文书
文字自荐书范文
2014/02/10 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫