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中去空格函数的用法
Aug 21 Python
python自动格式化json文件的方法
Mar 11 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
对python Tkinter Text的用法详解
Oct 11 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
python中的sys模块和os模块
Mar 20 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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实现下载断点续传的方法
2014/11/12 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
js 通用订单代码
2013/12/23 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
python入门之井字棋小游戏
2020/03/05 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
幼儿园教师备课制度
2014/01/12 职场文书
工伤私了协议书范本
2014/11/24 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
课题研究阶段性总结
2015/08/13 职场文书