当前位置: 首页 > 网络应用技术

您会在Python项目日志中找到回溯信息吗?

时间:2023-03-08 14:18:14 网络应用技术

  最近,我遇到了在访谈和开发职位期间查找和提取Python日志的问题。那时,我有点积极进取,不想有合理的解决方案。面试后,我考虑了这一点。在日常工作中,您还可以帮助测试学生提高考试效率,因此我写了这篇文章。

  问题的描述是:

  给您一个大的Python日志,如何在其中找到回溯信息?

  因此,首先,这个问题是否具有实际意义?因为我们都知道会有错误_logs在常规项目中收集错误日志,这意味着正在运行的项目程序中的错误,也就是说,Trackback Content已输出log.有许多实现此功能的方法,包括Python提供的追溯库,因此,从项目实施和操作的角度来看,此功能毫无意义。

  但是,从测试的角度来看,这很有用。例如,从功能开发到测试的一般公司的项目就是这样一个过程:

  其中,展示主要显示测试同学系统的核心功能是否连接;宣传主要是解决展示中发现的问题。如果这些过程在早期进行处理,则测试和发射可以更加顺畅。

  但是,在测试过程中总是遇到一些错误。这些错误在展示和准备过程中没有很好地发现,这些错误通常会向追溯报告。当RD宣传通常使用其自己的开发机器或测试环境时,这些环境无法将Sendy发送到IM软件(例如Lark,Nail),因此,这将导致错误进入测试阶段或在线阶段。如果在展示和准备过程中解决了此问题,则可以提高准备质量,提高测试效率并减少随后的过程错误的可能性因此,总而言之,存在一些实际意义。

  那么,python日志的内容是什么样的?我只是提供可能出现的内容。

  可以看出,日志与普通信息和追溯信息混合在一起,并且日志中每一行背后都有一个变化符号。

  在采访中,为了快速提出解决方案,大多数人想到的第一种方法是使用Linux命令,例如GREP命令进行查询。

  但是,GREP命令通常只能用于简单查询关键字并输出提供内容,但是Trackback信息跨越了更多行(在字符流中存在

  ),因此使用GREP命令更难找到。最多可以在短时间内想到的解决方案是输出追溯有多少行,例如:::

  这可以输出追溯和10行。显然,此方法无法满足需求。

  考虑的第二种方法是使用正则表达式。这种方法是可行的,但首先,您需要分析回溯内容的规则。其次,编写更复杂的正则表达式,因为文本中可能有很多与您设置的正面表达式和资源限制相匹配的行,因此它特别合理。

  这是我想到的解决方案。

  代码显示如下:

  代码的核心思想是使用堆栈结构来保存追溯信息。追溯的起点和结尾等于堆栈的底部和顶部。在遇到追溯时,堆栈已经输出并输出。

  该计划的结果如下:

  与正则表达方法相比,该解决方案具有两个优势:

  这是一个在Python日志中查看追溯信息的程序。通过解决此问题,它可以帮助研发学生快速发现程序中的问题并提高研发效率。如果读者想检查Java项目中的错误消息或其他语言,则可能需要修改常规以日志格式表达。

  有很多方法可以解决这个问题。在这里,我只是介绍他们自己的想法。可能会有更优雅和高效的解决方案。我还希望读者可以发表更多评论,并提供更接近实际场景的解决方案。