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映射列表实例分析
Jan 26 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
python实现IOU计算案例
Apr 12 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 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
如何删除多级目录
2006/10/09 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
简单的JS多重继承示例
2008/03/13 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
ES6扩展运算符用法实例分析
2017/10/31 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
入学生会自荐书范文
2014/02/05 职场文书
答谢会策划方案
2014/05/12 职场文书
初中重阳节活动总结
2015/05/05 职场文书
Python中else的三种使用场景
2021/06/16 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript
MYSQL如何查看进程和kill进程
2022/03/13 MySQL