gpt4 book ai didi

haskell - Haskell 中的代码检测

转载 作者:行者123 更新时间:2023-12-04 12:54:12 26 4
gpt4 key购买 nike

假设我维护连接到外部系统的复杂应用程序。有一天它开始为某些输入返回意外结果,我需要找出原因。可能是 DNS 问题、文件系统相关问题、外部系统更改等。

假设处理量很大,在我确定问题的可能位置之前,我需要获得原始应用程序没有产生的详细跟踪。

我如何检测现有代码,以便我可以(例如)提供非 volatile 证明(不是实时调试 session )某些组件或功能存在错误。

最佳答案

这听起来更像是一个架构/最佳实践类型的问题,而不是任何特定于 Haskell 的问题,除非我误解了某些东西。

听起来您的应用程序需要使用日志系统,例如 hslogger .一般的方法是让代码的每个组件创建带有附加优先级的日志消息。然后,您可以让应用程序以不同的方式处理不同的优先级,例如,关键错误可以显示在控制台上,而调试和信息级别的错误会显示在日志文件中。

有时使用 Debug.Trace.traceEvent 很有用和 Debug.Trace.traceEventIO而不是日志系统,特别是如果您怀疑存在并发问题,因为 ghc 事件日志还记录有关线程生成/切换和垃圾收集的信息。但总的来说,它不能替代实际的日志框架。

此外,您可能想要使用 assert作为一个健全的检查,“不可能”的情况真的不会发生。

关于haskell - Haskell 中的代码检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com