python:利用logbook模块管理日志
日志管理作为软件项目的通用部分,无论是开发还是自动化测试过程中,都显得尤为重要。
最初是打算利用python的logging模块来管理日志的,后来看了些github及其他人的自动化框架设计,做了个比对后,还是决定使用logbook。
这篇博客,介绍下python中的logbook模块的使用方法,仅供参考。。。
一、下载安装
1、文件安装
从官网下载logbook安装文件,然后安装即可。
官网链接:https://pypi.org/project/Logbook/
2、pip命令安装
进入CMD命令行,输入 pip install logbook 命令进行安装,安装成功后,输入 pip show logbook 命令,查看相关信息。

二、logbook简介
logbook的设计初衷,就是用来取代python的标准库日志模块:logging。具体内容可通过下方的链接查看官方文档说明:
官方文档:http://logbook.readthedocs.io/en/stable/index.html
三、用法说明
示例代码如下:log.py
# coding=utf-8
import os
import sys
import logbook
from logbook import Logger,StreamHandler,FileHandler,TimedRotatingFileHandler
from logbook.more import ColorizedStderrHandler def log_type(record,handler):
log = "[{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 log # 日志存放路径
LOG_DIR = os.path.join("Log")
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
# 日志打印到屏幕
log_std = ColorizedStderrHandler(bubble=True)
log_std.formatter = log_type
# 日志打印到文件
log_file = TimedRotatingFileHandler(
os.path.join(LOG_DIR, '%s.log' % 'log'),date_format='%Y-%m-%d', bubble=True, encoding='utf-8')
log_file.formatter = log_type # 脚本日志
run_log = Logger("script_log")
def init_logger():
logbook.set_datetime_format("local")
run_log.handlers = []
run_log.handlers.append(log_file)
run_log.handlers.append(log_std) # 实例化,默认调用
logger = init_logger()
代码解析:
1、定义日志文件类型,依次按照时间、日志等级、测试文件名、函数方法名、行数、具体的信息来展示;
日志等级:
| level | describe |
| critical | 严重错误,会导致程序退出 |
| error | 可控范围内的错误 |
| warning | 警告信息 |
| notice | 大多情况下希望看到的记录 |
| info | 大多情况不希望看到的记录 |
| debug | 调试程序时详细输出的记录 |
2、定义日志存放路径为Log文件夹;
3、logbook的日志输出方式有2种:打印到屏幕(比较适合调试时候,正式使用时可以将其注释掉)和打印输出到日志文件;
4、定义日志输出;
5、实例化,方便其他模块调用;
可以通过测试代码来测试日志是否打印到了对应的路径,测试代码如下:test_log.py
# coding=utf-8
import os
from log import run_log as logger if __name__ == '__main__':
logger.info("测试log模块,暂时就优化到这一步,后续再改进")
测试结果:

如上所示,即为logbook的基本使用方法,代码仅供参考,具体使用请自行实践。。。
python:利用logbook模块管理日志的更多相关文章
- python使用logging模块实现日志写入
python实现的logging写入日志的功能.logging模块还是挺好用的 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018 ...
- Python 利用pytesser模块识别图像文字
使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the ...
- Python利用os模块批量修改文件名
初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名 renames:可以修改文件名,还可以修改文件上 ...
- Python入门-pip模块管理工具
安装 # 在线安装 pip install <包名> 安装后,该模块文件会在安装python环境目录:lib/packages目录下 # 安装本地安装包 pip install <目 ...
- python利用twilio模块给自己发短信
1.访问http://twilio.com/并填写注册表单.注册了新账户后,你需要验证一个手机号码,短信将发给该号码. 2.Twilio 提供的试用账户包括一个电话号码,它将作为短信的发送者.你将需要 ...
- python 利用tkinter模块设计出window窗口(搞笑版)
代码如下 from tkinter import * import tkinter from tkinter import messagebox #定义了一个函数,当关闭window窗口时将会弹出一个 ...
- 通过python的logging模块输出日志文件
import logging import sys #获取logger实例 logger = logging.getLogger("baseSpider") # 括号后面填运行的文 ...
- python之scrapy模块logging日志
1.知识点 """ logging : scrapy: settings中设置LOG_LEVEL="WARNING" settings中设置LOG_F ...
- [Python] 利用commands模块执行Linux shell命令
http://blog.csdn.net/dbanote/article/details/9414133 http://zhou123.blog.51cto.com/4355617/1312791
随机推荐
- 吴恩达机器学习笔记 —— 7 Logistic回归
http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...
- windows查看笔记本电池使用报告
CMD 下 powercfg /batteryreport /output “C:\battery_report.html” powercfg 参数 /LIST./L 列出所有电源方 ...
- Spring学习之旅(一)极速创建Spring框架java工程项目
编译工具:eclipse 1)创建java工程:Spring_helloworld 2)导入所需jar包: 3)创建一个实体类: public class HelloBeans { private S ...
- Kotlin入门(22)适配器的简单优化
列表视图 为实现各种排列组合类的视图(包括但不限于Spinner.ListView.GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器Arr ...
- UVA 1152 4 Values whose Sum is 0 (枚举+中途相遇法)(+Java版)(Java手撕快排+二分)
4 Values whose Sum is 0 题目链接:https://cn.vjudge.net/problem/UVA-1152 ——每天在线,欢迎留言谈论. 题目大意: 给定4个n(1< ...
- Android/IOS手机使用Fiddler抓包
对于Android和IOS开发及测试的同事来说抓包是一个很重要的事,有利于排查问题所在,快速定位问题.但长期以来一直没有一款可以快速抓包的工具,直到有了Fiddler2. 使用步骤: 1. Fidd ...
- Mysql内置优化工具show profiles
一.概述: Mysql的explain工具目前还没有Oracle的explain plan工具那么强大,但是结合show profiles工具可以实现相似的效果.show profiles语句用于在当 ...
- sql server连接oracle并实现增删改查
需要一个软件ODAC112040Xcopy_64bit 我连接的oracle是11g r2 sqlserver 是 2016 软件下载 https://pan.baidu.com/s/1OpYmpR ...
- VueJs入门(一)
VueJs学习笔记:基本概念及简单demo Vue官方介绍:简单小巧的核心,渐进式技术栈,足以应付任何规模的应用. 简单小巧指的是vue.js压缩后仅有17KB,量轻.渐进式指的是我们学习和使用vue ...
- 将正在运行的Proxmox EV5.x版本更新到最新版本
问题描述: 最近搭建了一个KVM开源虚拟化平台 Proxmox Virtual Environment是一种基于QEMU / KVM和LXC的开源服务器虚拟化管理解决方案.您可以使用集成的,易于使用的 ...