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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
在python中的socket模块使用代理实例
May 29 Python
Python常用的日期时间处理方法示例
Feb 08 Python
详解Python发送邮件实例
Jan 10 Python
Python向日志输出中添加上下文信息
May 24 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
python读取文件名并改名字的实例
Jan 07 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
python中使用input()函数获取用户输入值方式
May 03 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
详解Java中一维、二维数组在内存中的结构
Feb 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
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
php查询及多条件查询
2017/02/26 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
JS中的BOM应用
2018/02/02 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
财务经理岗位职责
2013/11/09 职场文书
教师岗位职责范本
2013/12/29 职场文书
个人投资计划书
2014/05/01 职场文书
大学班级文化建设方案
2014/05/06 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
Node.js实现断点续传
2021/06/23 Javascript
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python
MySQL去除密码登录告警的方法
2022/04/20 MySQL