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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
python实现2014火车票查询代码分享
Jan 10 Python
Python3使用requests发闪存的方法
May 11 Python
Python while 循环使用的简单实例
Jun 08 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
python 随机打乱 图片和对应的标签方法
Dec 14 Python
python配置grpc环境
Jan 01 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
Python tcp传输代码实例解析
Mar 18 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
php $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
JQuery for与each性能比较分析
2013/05/14 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python实现多并发访问网站功能示例
2017/06/19 Python
python中模块查找的原理与方法详解
2017/08/11 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python之语音识别speech模块
2020/09/09 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
超市促销实习自我鉴定
2013/09/23 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
员工培训邀请函
2014/02/02 职场文书
一岗双责责任书
2014/04/15 职场文书
思想工作总结范文
2015/08/12 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python