  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.
