Taxonomy of Software Log Smells
Nyyti Saarimäki, Donghwan Shin, Domenico Bianculli
TL;DR
This paper defines a taxonomy of log smells, identifying ten distinct log smells, five direct causes, and four consequences, and shows how these smells manifest across multiple facets of logging. By surveying 43 papers, it maps eight detection tools and thirteen repair tools to the identified smells, revealing substantial but incomplete tool coverage and highlighting gaps in areas like format turmoil and log guards. The study provides a practical catalog for developers and researchers to recognize logging issues early and to apply automated tools where available, while also signaling opportunities for future tool development. Overall, the work advances understanding of logging quality as a measurable, tool-addressable concern, with significant implications for improving debuggability, reliability, and maintainability of software systems.
Abstract
Background: Logging is an important part of modern software projects; logs are used in several tasks such as debugging and testing. Due to the complex nature of logging, it remains a difficult task with several pitfalls that could have serious consequences. Several other domains of software engineering have mitigated such threats by identifying the early signs of more serious issues, i.e., "smells". However, this concept is not yet properly defined for logging. Objective: The goal of this study is to create a taxonomy of log smells that can help developers write better logging code. To further help the developers and to identify issues that need more attention from the research community, we also map the identified smells to existing tools addressing them. Methods: We identified logging issues and tools by conducting a survey of the scientific literature. After extracting relevant data from 45 articles, we used them to define logging issues using open coding technique and classified the defined issues using card sorting. We classify the tools based on their reported output. Results: The paper presents a taxonomy of ten log smells, describing several facets for each of them. We also review existing tools addressing some of these facets, highlighting the lack of tools addressing some log smells and identifying future research opportunities to close this gap.
