论文

ReLog:具有运行时反馈的执行感知日志记录,用于面向 LLM 的调试

ReLog: Execution-Aware Logging with Runtime Feedback for LLM-Oriented Debugging

摘要

日志语句对于软件调试和维护至关重要。然而,现有的自动日志生成方法依赖于静态分析并在单次传递中生成语句,而不考虑运行时行为。通常还通过与开发人员编写的日志的相似性来评估它们,假设这些日志形成了足够的参考标准。这种假设在 LLM 时代越来越受到限制,其中日志不仅被开发人员消耗,而且还被 LLM 用于下游任务。因此,针对人类相似性优化日志并不一定反映其实际效用。为了解决这些限制,我们引入了 ReLog,这是一种由运行时反馈引导的迭代日志生成框架。 ReLog 利用 LLM 生成、执行、评估和优化日志记录语句,以便运行时日志更好地支持下游任务。我们不是与开发人员编写的日志进行比较,而是通过下游调试任务评估 ReLog,包括缺陷定位和修复。我们在直接和间接调试设置下构建了基于 Defects4J 的基准测试。结果表明,ReLog 始终优于所有基线,在直接设置中实现了 0.520 的 F1 分数并修复了 97 个缺陷,在源代码不可用的间接设置中获得了 0.408 的最佳 F1 分数。跨多个 LLM 的其他实验证明了该框架的通用性,而消融则证实了迭代细化和编译修复的重要性。总的来说,我们的工作将日志记录重新构建为一个运行时引导、面向任务的过程,并提倡通过下游实用程序而不是文本相似性来评估日志。