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科学计算环境推荐——Anaconda
Jun 30 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
python学习入门细节知识点
Mar 29 Python
python监控文件并且发送告警邮件
Jun 21 Python
python多线程http压力测试脚本
Jun 25 Python
Python的Lambda函数用法详解
Sep 03 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
Python操作CSV格式文件的方法大全
Jul 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
模仿OSO的论坛(二)
2006/10/09 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
JavaScript 中的 this 工作原理
2018/06/20 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
Python面向对象基础入门之编码细节与注意事项
2018/12/11 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python requests模块cookie实例解析
2020/04/14 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
宿舍使用违章电器检讨书
2014/01/12 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
研修第一天随笔感言
2014/02/15 职场文书
前处理班长职位说明书
2014/03/01 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2014年政工师工作总结
2014/12/18 职场文书
python本地文件服务器实例教程
2021/05/02 Python