Logging -- used for system events and security breaches to more informational yet essential aspects of software features -- is pervasive. Given the high transactionality of today's software, logging effectiveness can be reduced by information overload. Log levels help alleviate this problem by correlating a priority to logs that can be later filtered. As software evolves, however, levels of logs documenting surrounding feature implementations may also require modification as features once deemed important may have decreased in urgency and vice-versa. We present an automated approach that assists developers in evolving levels of such (feature) logs. The approach, based on mining Git histories and manipulating a degree of interest (DOI) model, transforms source code to revitalize feature log levels based on the "interestingness" of the surrounding code. Built upon JGit and Mylyn, the approach is implemented as an Eclipse IDE plug-in and evaluated on 18 Java projects with $\sim$3 million lines of code and $\sim$4K log statements. Our tool successfully analyzes 99.26% of logging statements, increases log level distributions by $\sim$20%, identifies logs manually modified with a recall of $\sim$80% and a level-direction match rate of $\sim$87%, and increases the focus of logs in bug fix contexts $\sim$83% of the time. Moreover, pull (patch) requests were integrated into large and popular open-source projects. The results indicate that the approach is promising in assisting developers in evolving feature log levels.


翻译:用于系统事件和安全故障的日志, 用于系统事件和安全故障, 以获取更多信息, 但软件特性的基本方面, 是非常普遍的。 鉴于今天软件的高度交易性, 记录的有效性可以通过信息超负荷来降低。 日志水平通过将优先级别与以后过滤的日志联系起来来帮助缓解这一问题。 但是, 随着软件的演变, 记录特征执行的日志水平也可能需要修改, 因为一旦认为重要时, 其特性可能会在紧迫性和反之亦然。 我们展示了一种自动方法, 协助开发者逐步形成这种( 速度) 日志。 基于开采 Git 历史和调控某种程度( DOI) 模式, 将源代码转换为根据周围代码的“ 兴趣” 来恢复功能日志水平。 在 JGit 和 Mylyn 上, 该方法作为Eclipse IDE 插件来实施, 并在18 Java 项目中以300万美元代码行和 $=sim 4K 日志对日志报表进行评估。 我们的工具成功地分析了99.26 %,, 将日志水平的分布分布分布分配为 $80 和直径 。

0
下载
关闭预览

相关内容

Automator是苹果公司为他们的Mac OS X系统开发的一款软件。 只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动的(可重复的)完成一些复杂的工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。它还能和一些第三方的程序一起工作,如微软的Office、Adobe公司的Photoshop或者Pixelmator等。
专知会员服务
17+阅读 · 2020年9月6日
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
22+阅读 · 2019年10月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
54+阅读 · 2019年10月17日
机器学习入门的经验与建议
专知会员服务
89+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
269+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
.NET Core 原生DI+AOP实现注解式编程
DotNet
8+阅读 · 2019年9月9日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
【TED】什么让我们生病
英语演讲视频每日一推
7+阅读 · 2019年1月23日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
15+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
已删除
将门创投
7+阅读 · 2018年8月28日
LibRec 精选:连通知识图谱与推荐系统
LibRec智能推荐
3+阅读 · 2018年8月9日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
Arxiv
0+阅读 · 2021年6月9日
Arxiv
0+阅读 · 2021年6月4日
Learning in the Frequency Domain
Arxiv
11+阅读 · 2020年3月12日
The Measure of Intelligence
Arxiv
6+阅读 · 2019年11月5日
VIP会员
相关VIP内容
专知会员服务
17+阅读 · 2020年9月6日
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
22+阅读 · 2019年10月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
54+阅读 · 2019年10月17日
机器学习入门的经验与建议
专知会员服务
89+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
269+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
相关资讯
.NET Core 原生DI+AOP实现注解式编程
DotNet
8+阅读 · 2019年9月9日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
【TED】什么让我们生病
英语演讲视频每日一推
7+阅读 · 2019年1月23日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
15+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
已删除
将门创投
7+阅读 · 2018年8月28日
LibRec 精选:连通知识图谱与推荐系统
LibRec智能推荐
3+阅读 · 2018年8月9日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
Top
微信扫码咨询专知VIP会员