日志管理作为软件项目的通用部分,无论是开发还是自动化测试过程中,都显得尤为重要。

最初是打算利用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模块管理日志的更多相关文章

  1. python使用logging模块实现日志写入

    python实现的logging写入日志的功能.logging模块还是挺好用的 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018 ...

  2. Python 利用pytesser模块识别图像文字

    使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the ...

  3. Python利用os模块批量修改文件名

    初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名   renames:可以修改文件名,还可以修改文件上 ...

  4. Python入门-pip模块管理工具

    安装 # 在线安装 pip install <包名> 安装后,该模块文件会在安装python环境目录:lib/packages目录下 # 安装本地安装包 pip install <目 ...

  5. python利用twilio模块给自己发短信

    1.访问http://twilio.com/并填写注册表单.注册了新账户后,你需要验证一个手机号码,短信将发给该号码. 2.Twilio 提供的试用账户包括一个电话号码,它将作为短信的发送者.你将需要 ...

  6. python 利用tkinter模块设计出window窗口(搞笑版)

    代码如下 from tkinter import * import tkinter from tkinter import messagebox #定义了一个函数,当关闭window窗口时将会弹出一个 ...

  7. 通过python的logging模块输出日志文件

    import logging import sys #获取logger实例 logger = logging.getLogger("baseSpider") # 括号后面填运行的文 ...

  8. python之scrapy模块logging日志

    1.知识点 """ logging : scrapy: settings中设置LOG_LEVEL="WARNING" settings中设置LOG_F ...

  9. [Python] 利用commands模块执行Linux shell命令

    http://blog.csdn.net/dbanote/article/details/9414133 http://zhou123.blog.51cto.com/4355617/1312791

随机推荐

  1. ambari 卸载脚本

    #!/bin/bash # Program: # uninstall ambari automatic PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bi ...

  2. Android调用系统图库返回路径

    调用系统图库: Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ...

  3. Stable Fur Generation on Mesh

    After tested the Maya 2015 XGen Grooming, we dropped it, that's really slow and unstable, totally no ...

  4. Okhttp3请求网络开启Gzip压缩

    前沿 首先OkHttp3是支持Gzip解压缩的,不过我们要明白,它是支持我们在发起请求的时候自动加入header,Accept-Encoding: gzip,而我们的服务器返回的时候header中有C ...

  5. java基础(一)---数据类型&Math方法&强制转换

    数据类型及各种Math类方法 public class HelloWorld { public static void main(String args[]) { //各种数据类型的熟悉掌握,强制类型 ...

  6. tab 切换实现方法

    ul li 实现方法(只适用于,一个页面只有一组ul>li) <!--menu--> <div class="nav"> <ul class=& ...

  7. 2019年Web前端入门的自学路线

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文.本文内容不定期更新. 我前几天写过一篇文章:<裸辞两个月,海投一个月 ...

  8. 餐饮ERP相关问题FAQ

    1.订单无法自动上传,手动上传也是失败. 检查网络是否有问题,网络如果正常,打开本地连接-属性-internet协议版本4-首选DNS服务器设置为(114.114.114.114) 然后再打开IE浏览 ...

  9. Linux中对逻辑卷的移除

    移除前先df -mT 看一下:(在上一篇的基础上:Linux中对逻辑卷进行扩容) 1.取消挂载同时删除/etc/fstab下的记录 取消挂载 umount /dev/zhi/lv-zhi 删除记录 v ...

  10. 内核线程的进程描述符task_struct中的mm和active_mm

    task_struct进程描述符中包含两个跟进程地址空间相关的字段mm, active_mm, struct task_struct { // ... struct mm_struct *mm; st ...