Home »

Subscribe

Archives

Categories

Attribution-NonCommercial-ShareAlike 4.0 International

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

Log Level Rejuvenation for Evolving Software

Introduction

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 ~3 million lines of code and ~4K log statements. Our tool successfully analyzes 99.26% of logging statements, increases log level distributions by ~20%, identifies logs manually modified with a recall of ~80% and a level-direction match rate of ~87%, and increases the focus of logs in bug fix contexts ~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.

Publications

My and my research students‘ names are boldfaced, undergraduate students are italicized, and female students are underlined:

Yiming TangAllan SpektorRaffi Khatchadourian, and Mehdi Bagherzadeh. A tool for rejuvenating feature logging levels via Git histories and degree of interest. In International Conference on Software Engineering: Companion Proceedings, ICSE-Companion ’22, pages 21–25. IEEE/ACM, IEEE, May 2022. (49/98; 50% acceptance rate). [ bib | DOI | arXiv | video | tool | slides | http ]

Yiming TangAllan SpektorRaffi Khatchadourian, and Mehdi Bagherzadeh. Automated evolution of feature logging statement levels using Git histories and degree of interest. Science of Computer Programming, 214(C):102724, February 2022. Presented at the IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER ’22) journal-first track. [ bib | DOI | arXiv | video | data | tool | slides | http ]

Yiming TangTowards Automated Software Evolution of Data-intensive Applications. PhD thesis, City University of New York (CUNY) Graduate Center, 365 5th Ave, New York, NY 10016, June 2021. [ bib | http ]

Allan Spektor. Two techniques for automated logging statement evolution. Master’s thesis, City University of New York (CUNY) Hunter College, 695 Park Avenue, New York, NY 10065, July 2020. [ bib | http ]

Research Prototype

Study Data

DOI

Our dataset is hosted on Zenodo.

Presentations

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.