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抢过年的火车票附源码
Dec 07 Python
Python常用的爬虫技巧总结
Mar 28 Python
python简单读取大文件的方法
Jul 01 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
python机器学习实现决策树
Nov 11 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
浅谈python数据类型及其操作
May 25 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
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
详解python开发环境搭建
2016/12/16 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
追悼会主持词
2014/03/20 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
公司授权委托书
2014/10/17 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS