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

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无法更新Maven配置   Java中错误和异常的区别?   java从日期开始获得小时、分钟和秒?   使用jsonpath使用数组索引进行java解析   java如何从改造中读取json响应   Java:封装概念   Scala的java Play Framework:[类型控制器不是包控制器的成员]   java JPA Hibernate使用criteria builder生成的左连接被忽略   使用mvn测试版本号时,java Maven无法解析依赖项   java安卓的vitals和异常处理   java组织。springframework。网状物绑定参数的MissingServletRequestParameterException   java JSON解析在Android应用程序脱机时崩溃   java如何降低SmartMaterialSpinner的高度?   java有一种在使用矩阵时不拉伸位图的方法。位图上的polytoply()?   java arraylist有问题吗   java调用dispose()不会关闭JFrame   java主机环境安全   java是否产生/加入释放监视器锁?   java包含json文件并将其读入生成的maven中。jar文件