自动登录使记录和跟踪python类变得容易。

Autologging的Python项目详细描述


autologging-更容易记录和跟踪python类

http://ninthtest.info/python-autologging/

PyPI versionPython versionPython implementationLicenseWheel availability

简介

自动登录消除了样板日志设置代码和跟踪代码, 并提供了一种将应用程序日志记录与程序流分离的方法 以及数据追踪。

使用自动登录的python模块更干净、更精简,并且 更能适应需要更新跟踪的更改 声明。

自动登录允许配置(和控制)跟踪 独立于应用程序日志记录。打开/关闭跟踪,写入 将日志记录跟踪到单独的日志,并使用不同的格式 跟踪日志条目-全部通过标准python日志记录工具,以及 不会影响应用程序日志记录。

autologging名称空间中有什么?

自动登录将公开两个装饰器和一个自定义日志级别:

logged 修饰类以创建__log成员。记录器的名称是 默认设置为与包含类的虚线名称匹配。函数 也可以被修饰,在函数上创建_log属性 其默认名称与包含模块匹配的对象。 一个特别命名的记录器也可以传递给decorator(即 logged(my_logger))。

traced 修饰类以提供自动方法调用/返回跟踪。由 默认情况下,跟踪所有类、静态和实例方法(不包括 “special”方法,除了__init____call__)。 与loggeddecorator一样,跟踪记录器的默认名称 匹配包含类的虚线名称,并且可以由重写 将一个特定命名的记录器传递给decorator。 另外,这个decorator接受多个字符串参数 显式地命名要跟踪的方法(甚至可以 “special”方法)。

模块级函数也可以使用这个decorator进行跟踪。

1.2.0版中的new:python的自动生成/停止跟踪 generator iterators (如果generator 函数被跟踪)。

TRACEautologging.TRACE(级别1)日志级别注册到 导入自动登录时的pythonlogging模块,以便跟踪 可以独立于应用程序日志进行配置和控制。

通过设置 AUTOLOGGING_TRACED_NOOP环境变量或通过调用 autologging.install_traced_noop()函数。

一个简单的例子

一个简单的记录和跟踪类:

1importlogging2importsys34fromautologgingimportlogged,TRACE,traced56@traced7@logged8classExample:910def__init__(self):11self.__log.info("initialized")1213defbackwards(self,*words):14forwordinwords:15yield"".join(reversed(word))161718if__name__=="__main__":19logging.basicConfig(20level=TRACE,stream=sys.stderr,21format="%(levelname)s:%(filename)s,%(lineno)d:%(name)s.%(funcName)s:%(message)s")22example=Example()23forresultinexample.backwards("spam","eggs"):24print(result)

记录和跟踪输出:

$ python example.py
TRACE:example.py,10:__main__.Example.__init__:CALL *() **{}
INFO:example.py,11:__main__.Example.__init__:initialized
TRACE:example.py,11:__main__.Example.__init__:RETURN None
TRACE:example.py,13:__main__.Example.backwards:CALL *('spam', 'eggs') **{}
TRACE:example.py,15:__main__.Example.backwards:RETURN <generator object backwards at 0x7fa534d61eb0>
TRACE:example.py,15:__main__.Example.backwards:YIELD 'maps'
maps
TRACE:example.py,15:__main__.Example.backwards:YIELD 'sgge'
sgge
TRACE:example.py,15:__main__.Example.backwards:STOP

安装

安装自动登录的最简单方法是使用 pip

$ pip install Autologging

源安装

克隆或分叉存储库:

$ git clone https://github.com/mzipay/Autologging.git

或者,下载并解压缩source.zip或.tar.gz存档 从https://github.com/mzipay/Autologging/releaseshttps://pypi.python.org/pypi/Autologginghttps://sourceforge.net/projects/autologging/files/

运行测试套件并安装autologging模块:(确保 安装了setuptools!)

$ cd Autologging
$ python setup.py test
$ python setup.py install

二进制安装

从下载python控制盘(.whl)或windows安装程序 https://pypi.python.org/pypi/Autologginghttps://sourceforge.net/projects/autologging/files/

(使用pipwheel安装.whl。)

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

推荐PyPI第三方库


热门话题
java为什么这一行是charg=(char)(br.read());被跳过?   java三重DES中的IV在哪里?   java Lombok注释不在Intellij idea下编译   java为什么我不能使用过滤器作为流中的最后一步   sqlite Java编译错误找不到符号方法next()   在Java中解析处理对int来说太大的数字   java摄像头不工作   java是“断言错误”好的做法?   java确定api请求是来自CURL还是POSTMAN?   JavaSpringMVC导航   java使单例模式代码更强大   当Java(解释器)区分大小写时,为什么Java编译器(javac)不区分大小写?   java注释字符串[]oneArr();vs字符串[][]twoArr();公告   java命名查询的利弊   java使用log4jweb在web应用程序中配置Log4j2。罐子   java正则表达式查找以开头和结尾的所有可能出现的文本~   java从字符串执行方法