简单的google风格的python日志包装。
glog的Python项目详细描述
一个简单的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
按空格分隔,字段为:
- 第一个字符是日志级别,然后是mmdd(月,日)
- 时:分:秒
- 进程ID
- sourcefile.py:linenumber的basename\u
- 日志消息的正文。
示例使用
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. |