一个易于详细记录、错误和警告的包。

papagei-niederha的Python项目详细描述


爸爸

papagei是一个模块,它提出了详细日志记录的实现。python可以选择进行详细的日志记录, 错误警告和错误处理等。但是,多个包通常是隐含的,并实现所需的 消息可能需要多行代码。papagei试图创建一个允许进行详细日志记录的模块。 以一种简单的方式,无需导入多个包导入,且每次调用的代码行数最少。 尽管相当简单,但帕帕吉的缺点是更加僵化。它适合于简单的案例和调试。为了 更复杂的错误处理或消息格式化您可能希望回到python内置的函数和包。

使用papagei

papagei有三个主要组件:

  • 详细级别(枚举)(类)
  • verbose(verboselevel类型的对象)
  • 显示功能

详细级别和详细级别:

在这个实现中,papagei有6个详细级别:

  • silent:不会显示任何内容不会引发任何错误不会返回任何警告。
  • 错误:仅显示模拟错误()。错误照常出现。
  • 警告:错误的行为与往常一样,警告和模拟警告也一样。
  • info:来自上一级别的所有消息加上信息消息。
  • debug:以前级别的所有消息加上调试消息。
  • frivolous:来自上一级别的所有消息加上frivolity消息。

可以使用verbose变量和verbose level枚举设置详细级别。例如:

VERBOSE=VerboseLevel.INFO

注意:由于其实现简单,papagei中的详细级别仅对函数起作用 形成帕帕吉包装。换言之,将papagei.verbose设置为silent不会使外部引发的错误保持沉默。 papagei包不会实现任何警告过滤器来取消来自papapgei模块外部的警告,并且 不会删除在papagei模块之外完成的任何print()。

功能

所有函数都链接到特定的调试级别。错误级别和警告级别有两个功能。 一个使用实际的python警告和错误,另一个(前面有“mock_u”)只在控制台中打印消息 不中断程序运行。

  • error(*args):(level:error)将参数格式化为字符串并使用它引发错误。
  • mock_error(*args):(level:error)将参数格式化为字符串,并以类似错误的格式打印它们。
  • warning(*args,**kwargs):(level:warning)将参数格式化为字符串并使用它生成警告。这个 可以通过关键字“type”传递警告类来更改警告类型。显示警告,然后 函数返回警告对象。
  • mock_warning(*args):(level:warning)将args格式化为字符串,并将其显示为类似警告的格式。
  • info(*args):(level:info)将参数格式化为字符串,并将其显示为特定的信息格式。
  • 调试(*args):(level:debug)将参数格式化为字符串,并将其显示为特定的调试格式。
  • 轻浮性(*args):(级别:轻浮)将参数格式化为字符串并将其显示为特定的 轻浮的格式。

示例

frompapageiimportpapageiasppgppg.VERBOSE=ppg.VerboseLevel.DEBUGppg.debug('This is example',1)# This message will showppg.frivolity('This is example',2)# This won't show

注意:import语句有一点冗余。这应该以后再解决。

修改源代码

即使无法从包外部添加类,源代码的生成方式也应该 使添加、删除、移动或重新格式化类变得容易。

重新格式化类

类的格式化是通过文本格式字典完成的。th的价值在前面添加了词典 对应级别的每个字符串进行格式化。更改此词典中的值以更改格式。 文本头字典也一样,它在消息的开头显示一个头。

添加、移除或移动类

若要移动层次结构中的类,则必须执行所有操作才能更改其在verboseLevel(枚举)枚举中的位置。 此枚举是自动编号的,因此移动它将适应项的值,并且每个函数中的检查将是 改编。若要添加项,应在枚举中添加相应的verboseLevel。然后是文本格式和文本标题 词典应该更新。最后可以在模型调试中编写新级别的专用功能, 信息或轻浮,使用来自元组(字符串元组)的_format_string_将*参数格式化为单个字符串。同样的过程可以 反向跟踪以删除类。

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

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应