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-8import 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-8import os
from log import run_log as logger
if __name__ == '__main__':
logger.info("测试log模块,暂时就优化到这一步,后续再改进")
测试结果:
####
python:利用logbook模块管理日志
1. 模块安装(采用pip命令安装)进入cmd命令,输入pip install logbook安装, 安装成功之后采用pip show logbook查看相关信息
2. logbook简介
http://logbook.readthedocs.io/en/stable/index.html
3. 用法说明
import os
import logbook
from logbook import Logger, 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("global_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()
if __name__ == '__main__':
run_log.info("测试Log模块")
#####
#####
日志管理作为软件项目的通用部分,无论是开发还是自动化测试过程中,都显得尤为重要。
最初是打算利用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-8import 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-8import os
from log import run_log as logger
if __name__ == '__main__':
logger.info("测试log模块,暂时就优化到这一步,后续再改进")
测试结果:
####
python:利用logbook模块管理日志
1. 模块安装(采用pip命令安装)进入cmd命令,输入pip install logbook安装, 安装成功之后采用pip show logbook查看相关信息
2. logbook简介
http://logbook.readthedocs.io/en/stable/index.html
3. 用法说明
import os
import logbook
from logbook import Logger, 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("global_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()
if __name__ == '__main__':
run_log.info("测试Log模块")
#####
#####
以上是 python:利用logbook模块管理日志 的全部内容, 来源链接: utcz.com/z/386662.html