import os
import logbook
from logbook.more import ColorizedStderrHandler
from functools import wraps
check_path='.'
LOG_DIR = os.path.join(check_path, 'log')
file_stream = False
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
file_stream = True
def get_logger(name='jiekou', file_log=file_stream, level=''):
""" get logger Factory function """
logbook.set_datetime_format('local') ColorizedStderrHandler(bubble=False, level=level).push_thread()
logbook.TimedRotatingFileHandler(
os.path.join(LOG_DIR, '%s.log' % name),
date_format='%Y-%m-%d-%H', bubble=True, encoding='utf-8').push_thread()
return logbook.Logger(name) LOG = get_logger(file_log=file_stream, level='INFO')
def logger(param):
""" fcuntion from logger meta """
def wrap(function):
""" logger wrapper """
@wraps(function)
def _wrap(*args, **kwargs):
""" wrap tool """
LOG.info("当前模块 {}".format(param))
# LOG.info("全部args参数参数信息 , {}".format(str(args)))
# LOG.info("全部kwargs参数信息 , {}".format(str(kwargs)))
return function(*args, **kwargs)
return _wrap
return wrap

使用后日志展示如图所示

[2017-10-16 20:54:46.439386] INFO: jiekou: 当前模块 requests封装
[2017-10-16 20:54:46.900412] INFO: jiekou: 当前模块 解析测试用例文件
[2017-10-16 20:54:47.323436] INFO: jiekou: 当前模块 解析测试用例文件
[2017-10-16 20:54:47.332437] INFO: jiekou: 当前模块 测试
[2017-10-16 20:54:47.554450] INFO: jiekou: inputdata> 参数:sasa, url:http://www.tuling123.com/openapi/api ,返回:{'code': 40001, 'text': '亲爱的,key不对哦。'},预期:code=40001
[2017-10-16 20:54:47.556450] INFO: jiekou: 当前模块 断言测试结果
[2017-10-16 20:54:47.654455] INFO: jiekou: inputdata> 参数:, url:http://www.tuling123.com/openapi/api
,返回:{'code': 40002, 'text': '有啥事吗?'},预期:code=40002
[2017-10-16 20:54:47.656455] INFO: jiekou: 当前模块 断言测试结果
[2017-10-16 20:54:48.161484] INFO: jiekou: inputdata> 参数:, url:https://api.douban.com/v2/photo/:id ,返回:{'msg': 'uri_not_found', 'code': 1001, 'request': 'POST /v2/photo/:id'},预期:code=1001&msg=uri_not_found
[2017-10-16 20:54:48.163484] INFO: jiekou: 当前模块 断言测试结果
[2017-10-16 20:54:48.230488] INFO: jiekou: 当前模块 保存测试结果
[2017-10-16 20:54:56.272948] INFO: jiekou: 当前模块 requests封装
[2017-10-16 20:54:56.295950] INFO: jiekou: 当前模块 解析测试用例文件
[2017-10-16 20:54:56.323951] INFO: jiekou: 当前模块 解析测试用例文件
[2017-10-16 20:54:56.330952] INFO: jiekou: 当前模块 测试
[2017-10-16 20:54:56.548964] INFO: jiekou: inputdata> 参数:sasa, url:http://www.tuling123.com/openapi/api ,返回:{'code': 40001, 'text': '亲爱的,key不对哦。'},预期:code=40001
[2017-10-16 20:54:56.548964] INFO: jiekou: 当前模块 断言测试结果
[2017-10-16 20:54:56.636969] INFO: jiekou: inputdata> 参数:, url:http://www.tuling123.com/openapi/api
,返回:{'code': 40002, 'text': '有些话,难以说出口?'},预期:code=40002
[2017-10-16 20:54:56.638969] INFO: jiekou: 当前模块 断言测试结果
[2017-10-16 20:54:56.844981] INFO: jiekou: inputdata> 参数:, url:https://api.douban.com/v2/photo/:id ,返回:{'msg': 'uri_not_found', 'code': 1001, 'request': 'POST /v2/photo/:id'},预期:code=1001&msg=uri_not_found
[2017-10-16 20:54:56.846981] INFO: jiekou: 当前模块 断言测试结果
[2017-10-16 20:54:56.888984] INFO: jiekou: 当前模块 保存测试结果

python logging一个通用的使用模板的更多相关文章

  1. 我所使用的一个通用的Makefile模板

    话不多说,请看: 我的项目有的目录结构有: dirls/ ├── include │   └── apue.h ├── lib │   ├── error.c │   ├── error.o │   ...

  2. python logging 模块的应用

    对一名开发者来说最糟糕的情况,莫过于要弄清楚一个不熟悉的应用为何不工作.有时候,你甚至不知道系统运行,是否跟原始设计一致. 在线运行的应用就是黑盒子,需要被跟踪监控.最简单也最重要的方式就是记录日志. ...

  3. python logging模块可能会令人困惑的地方

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...

  4. django 创建一个通用视图

    创建一个通用视图   抽取出我们代码中共性的东西是一个很好的编程习惯. 比如,像以下的两个Python函数:     def say_hello(person_name): print 'Hello, ...

  5. python Logging的使用

    日志是用来记录程序在运行过程中发生的状况,在程序开发过程中添加日志模块能够帮助我们了解程序运行过程中发生了哪些事件,这些事件也有轻重之分. 根据事件的轻重可分为以下几个级别: DEBUG: 详细信息, ...

  6. python logging method 02

    基本用法 下面的代码展示了logging最基本的用法.     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...

  7. python logging模块,升级print调试到logging。

    简介: 我们在写python程序的时候,很多时候都有bug,都是自己写的,自己造的孽,又的时候报错又是一堆,不知道是那部分出错了. 我这初学者水平,就是打print,看哪部分执行了,哪部分没执行,由此 ...

  8. 【AMAD】tenacity -- Python中一个专门用来retry的库

    动机 简介 用法 基本用法 何时停止 尝试间的等待 何时retry 其它 热度分析 源码分析 个人评分 动机 很多时候,我们都喜欢为代码加入retry功能.比如oauth验证,有时候网络不太灵,我们希 ...

  9. “Word自动更改后的内容保存到通用文档模板上。是否加载该模板?“的解决办法

    在win7系统下,Word2010出现了不能正常关闭.打开一个已有word文档,点击右上角关闭按钮后,先提示"word已停止工作,windows正在检查该问题的解决方案",随后提示 ...

随机推荐

  1. 备忘录模式(Memento)

    备忘录模式(Memento) 主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是 ...

  2. 代理模式(Proxy)

    代理模式(Proxy) 其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希 ...

  3. 51Nod 2006 飞行员配对(二分图最大匹配)

    链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2006 思路: 二分匹配 注意n m的关系 代码: #include ...

  4. PHP实现excel

    导入 public function excel_put(){ //先做一个文件上传,保存文件 $path=$_FILES['file']; $filePath = "uploads/&qu ...

  5. Filebeat轻量级日志采集工具

    Beats 平台集合了多种单一用途数据采集器.这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据. 一.架构图 此次试验基于前几 ...

  6. 【福利】十一起,小冰科技所有UWP产品免费半个月

    从十月一日起(UTC协调世界时),至十月十五,小冰科技所有UWP产品免费半个月!!!!!! 注意是UTC哦,中国区,比UTC早8个小时,要等到十月一号早晨八点开始... 现在小冰科技旗下一共发布了 5 ...

  7. 使用.Net Core+EF7 完成CodeFirst

    emmm,本来想着用Core做一个小项目玩玩的,然后肯定是要用到数据库的, 然后想,啊,要不用CodeFirst,感觉很腻害的样子,于是,一脸天真无邪的我就踏入了一个深不见底的天坑... 本来想着,应 ...

  8. springboot+thymeleaf(2)

    操作步骤 (1)在pom.xml中引入thymeleaf; (2)如何关闭thymeleaf缓存 (3)编写模板文件.html (4)编写访问模板文件controller 1.在pom.xml中引入t ...

  9. day9、用户登陆出现-bash-4.1$错误的原因及解决方法

    原因:用户家目录里面与环境变量有关的文件被删除所导致的 下面两个文件被删除导致的 .bash_profile .bashrc 解决方法:从/etc/skel把丢失的文件 复制回来就可以了 -bash- ...

  10. python 爬取国家粮食局东北地区玉米收购价格监测信息

    #!/usr/bin/python# -*- coding: UTF-8 -*-import reimport sysimport timeimport urllibimport urllib.req ...