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 SDK写一个同步脚本及使用教程
Aug 23 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
详解python Todo清单实战
Nov 01 Python
Python读取指定日期邮件的实例
Feb 01 Python
python对验证码降噪的实现示例代码
Nov 12 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
Python实现括号匹配方法详解
Feb 10 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
python下载的库包存放路径
Jul 27 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异步调用socket实现代码
2012/01/12 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP实现计算器小功能
2020/08/28 PHP
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python抽取指定url页面的title方法
2018/05/11 Python
Python调用服务接口的实例
2019/01/03 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
Java语言程序设计测试题选择题部分
2014/04/03 面试题
培训自我鉴定
2014/01/31 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
服务行业演讲稿
2014/09/02 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
超市主管竞聘书
2015/09/15 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js