简单的google风格的python日志包装。从benley/python glog派生

glog2的Python项目详细描述


https://travis-ci.org/benley/python-glog.svg?branch=master

一个简单的google风格的python日志包装器。

这个库试图极大地简化python应用程序中的日志记录。 没有人愿意花上几个小时来翻阅pep 282日志文件,而且 几乎没有人真的需要像伐木工人这样可以重新配置的东西 网络。我们只想继续写我们的应用程序。

样式在twitter.common.log接口之后,而该接口又是 以google的内部python记录器为模型,该记录器是never actually released到wild,然后又是基于C++ glog library

核心优势

  • 您和您的代码不需要关心日志记录的工作方式。除非你 当然想。
  • 没有更复杂的设置样板!
  • 您的应用程序和脚本都将具有一致的日志格式,并且相同 可预测的行为。

这个库配置根日志,所以几乎所有您导入的 使用标准的python日志记录模块将很好地配合使用。

行为

  • 消息总是写入stderr。
  • 行的前缀是google样式的日志前缀,格式为

E0924 22:19:15.123456 19552 filename.py:87] Log message blah blah

按空格分隔,字段为:

  1. 第一个字符是日志级别,然后是mmdd(月,日)
  2. 时:分:秒
  3. 进程ID
  4. sourcefile.py:linenumber的basename\u
  5. 日志消息的正文。

示例使用

importglogasloglog.setLevel("INFO")# Integer levels are also allowed.log.info("It works.")log.warn("Something not ideal")log.error("Something went wrong")log.fatal("AAAAAAAAAAAAAAA!")

如果你的应用使用gflags,它将自动获得--verbosity标志, 您可以跳过调用log.setLevel。只需导入glog并开始日志记录。

检查宏/断言帮助程序

Like the C++ version of glog,python glog提供了一组检查宏 [1]帮助记录和强制执行不变量。它们提供了详细的 指示导致断言失败的值以及堆栈的消息 跟踪标识导致失败的代码路径,希望能够 更容易再现错误。失败的检查引发FailedCheckException。 您可能会发现这些比标准python更方便和/或更熟悉 断言,特别是如果您在混合C++和Python代码库中工作。

importglogaslogimportmathdefcompute_something(a):log.check_eq(type(a),float)# require floating point typeslog.check_ge(a,0)# require non-negative valuesvalue=math.sqrt(a)returnvalueif__name__=='__main__':compute_something(10)

提供检查功能:

check(condition)check_eq(obj1,obj2)check_ne(obj1,obj2)check_le(obj1,obj2)check_ge(obj1,obj2)check_lt(obj1,obj2)check_gt(obj1,obj2)check_notnone(obj1,obj2)

快乐的日志!

[1]Technically these are functions, not macros. Python does not have syntactic macros in the sense that C++ and most lisp-like languages do.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Springboot数据JPA findByDate()   java是否可以有多个顶级树节点?   javahibernatehql。子查询中的多个   使用Twilio验证java Keyclope电话号码   java重写对象的toString()表示返回意外的符号   java Android最多每15分钟调用一个方法,否则使用保存的数据   在java swing中突出显示jeditorpane中的一些单词   java将时间戳转换为UTC时区   由于main中存在ArrayIndexOutOfBoundsException,导致java编译错误   java如何通过requestscope获取对象内部对象的值?   java访问安卓代码内的网站并检索生成的图像   java这种日期格式的模式是什么?   java解析包含超链接的xml字符串