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实现的去除win下文本文件头部BOM的代码
Feb 10 Python
python基础教程之缩进介绍
Aug 29 Python
Python每天必学之bytes字节
Jan 28 Python
python+Django+apache的配置方法详解
Jun 01 Python
Python进行数据提取的方法总结
Aug 22 Python
python中文编码与json中文输出问题详解
Aug 24 Python
python框架flask表单实现详解
Nov 04 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
怎么快速自学python
Jun 22 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
浅谈python中的多态
Jun 15 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
学习使用PHP数组
2006/10/09 PHP
介绍php设计模式中的工厂模式
2008/06/12 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
js实现随机点名小功能
2017/08/17 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
Python如何测试stdout输出
2020/08/10 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
大学生自荐书范文
2013/12/10 职场文书
加工操作管理制度
2014/01/19 职场文书
关于安全的演讲稿
2014/05/09 职场文书
好好学习保证书
2015/02/26 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis