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判断端口是否打开的实现代码
Feb 10 Python
Python中使用HTMLParser解析html实例
Feb 08 Python
Python查找相似单词的方法
Mar 05 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
python删除过期log文件操作实例解析
Jan 31 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
python各类经纬度转换的实例代码
Aug 08 Python
python 修改本地网络配置的方法
Aug 14 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python 字符串池化的前提
Jul 03 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开发GUI
2006/10/09 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
深入浅出php socket编程
2015/05/13 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
React实现轮播效果
2020/08/25 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
python 性能优化方法小结
2017/03/31 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
Python中按值来获取指定的键
2019/03/04 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
Python PIL库图片灰化处理
2020/04/07 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
Java程序员面试题
2016/09/27 面试题
小学教师师德感言
2014/02/10 职场文书
广告业务员岗位职责
2015/02/13 职场文书
元宵节寄语大全
2015/02/27 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
MySQL触发器的使用
2021/05/24 MySQL