python日志模块logbook使用方法
作者:村中少年 发布时间:2021-10-02 02:25:50
标签:python,logbook,日志模块
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使用方法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/javajiawei/article/details/100927527


猜你喜欢
- 本文介绍python统计词频的几种方法,供大家参考方法一:运用集合去重方法def word_count1(words,n):
- Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree。首先 import 之
- 前言突然想起来之前讲SQL注入时忘记讲一下这个宽字节注入了,因为这个知识点还是挺重要的,所以本文就带大家了解一下宽字节注入的原理以及应用方法
- 引言膨胀与腐蚀是图像处理中两种最基本的形态学操作,膨胀将目标点融合到背景中,向外部扩展,腐蚀与膨胀意义相反,消除连通的边界,使边界向内收缩。
- 本文实例讲述了Python实现的逻辑回归算法。分享给大家供大家参考,具体如下:使用python实现逻辑回归Using Python to I
- 使用golang并发求和,作为对golang并发的一个练习.为了验证结果的正确性,要给出最传统的版本:func sum1(data []in
- bytes 和 bytearraybytes 和 bytearray 都是二进制世界的成员,用二进制的方式去理解才能看清他的本质。理解byt
- IE6绝对定位的bug及其解决办法。position:absolute定位在IE6下存在left和bottom的定位错误问题:<!–I
- 1.问题背景Python之所以强大,不仅是因为该语言本身的特点,也是因为它拥有众多无所不能的第三方库。强大的软件库允许开发者专注于业务,避免
- Python 10进制数与16进制数相互转换10进制转为16进制在Python中,我们可以使用内置的hex()函数将10进制数转换为16进制
- 最近看到N多介绍CSS框架,前些天我说过一句话:“在我有限的视野里,还没见到可以真正可以称得上css框架的东东~”,当然也可能是我的视野太小
- 我们经常遇到各种字典套字典的数据,例如:nest_dict = { 'a': 1, 'b
- 如下所示:# -*- coding: utf-8 -*-import osimport numpy as npimport pandas a
- 过年这段时间由于线上数据库经常压力过大导致响应非常缓慢甚至死机,咬咬牙下大决心来解决效率不高的问题!首先是由于公司秉承快速开发原则,频繁上线
- 本文实例讲述了js正则匹配中文标点符号的方法。分享给大家供大家参考,具体如下:运行效果截图如下:具体代码如下:<html><
- 这几天做个了项。就是微信扫描二维码的然后进入公众号网页巴拉巴拉的,然后就很顺利的遇到了在安卓端扫码的时候,顺利的一塌糊涂,然后到了苹果端的时
- 一、使用+号添加列表元素一般情况下两个列表合并起来也是一种添加元素的方法,只要使用+号直接进行运算就可以了,下面是演示代码。name1 =
- 最近脱离了googlecolab想使用本地的anaconda进行机器学习课题的演练,在安装tensorflow时报错 : Unsatisfi
- 数据结构channel的数据结构在$GOROOT/src/runtime/chan.go文件下:type hchan struct {qco
- 昨天面试上来就是一个算法,平时基本的算法还行,结果变个法就不会了。。。感觉应该刷一波Leecode冷静下。。。今天抽空看下。题目就是要求O(