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

glog的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 Android使用两个后台服务错误   解压缩HTTPInputStream时,java GZIPInputStream过早关闭   javax和javax的区别是什么。网ssl。密钥库和服务器。ssl。为SpringBoot应用程序指定密钥库时的密钥库属性   java生成两个JPanel,而我只需要一个   java深度链接从play store安装应用程序时获取数据   java 安卓应用程序在退出时未正确释放蓝牙   java正确使用setCellValueFactory   java开放JdbcTemplate连接处于只读模式?   使用Spring MVC创建服务时发生java错误   JavaFX获取安装在计算机中的特定应用程序的版本   SecureRandom的安全问题:PRNG在java 1.5中不一致   windows我可以创建一个独立的。带Inno设置的Java应用程序的exe安装程序?   如何使用JavaServlet下载csv文件?   java从生成的缓冲图像中添加图像作为jasper中的数据记录?   java日期和时间解析