论文

ThinkLog:利用推理生成日志语句

ThinkLog: Leveraging Reasoning for Log Statement Generation

摘要

运行时日志是支持软件维护的重要信息来源。为了获取有用的日志,开发人员花费大量精力来识别适当的日志位置,分配正确的严重性级别,并编写简洁而信息丰富的消息。因此,端到端自动日志语句生成可以帮助减轻这种负担,并且先前的工作已经针对此任务提出了许多方法。然而,现有方法的准确性仍然有限。为了解决这个问题,我们提出了ThinkLog,一种基于LLM的端到端日志语句生成方法。 ThinkLog的核心思想是融入推理,帮助LLM做出日志插入、严重级别分配和消息生成等决策,从而提高日志语句生成的准确性。 ThinkLog 将推理作为少数示例注入到提示中,并指导 LLM 生成适当的日志语句。通过对从公共 GitHub 存储库中提取的 9,619 个 Java 方法进行评估,ThinkLog 实现了 20.55% 的日志语句生成准确率,比现有最佳方法提高了 15.4%。此外,与现有最佳方法相比,这些改进的推理成本(美元)约为 50%。这些结果表明,利用推理是提高端到端日志语句生成准确性的有效且经济高效的方法。