Taxonomy of Software Log Smells

Nyyti Saarimäki,Donghwan Shin,Domenico Bianculli
2024-12-12
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.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is to create a classification system for software log smells and to understand whether the research community has proposed tools to detect or address these log smells. Specifically, the goals of the paper include: 1. **Define and identify software log smells**: Through literature review, identify common problems related to logging and classify these problems into different log smells. 2. **Map existing tools**: Determine which existing tools can detect, remove, or fix these log smells. 3. **Help developers**: By providing a classification system for log smells, help developers write high - quality log code better and avoid potential problems. 4. **Guide future research**: By identifying log smells that are not fully covered by existing tools, provide directions for future scientific research work. ### Background and Goals of the Paper Logging is an important part of modern software projects and is widely used for tasks such as debugging and testing. However, due to the complexity of logging, it is still a challenging task and is prone to various problems. These problems may lead to serious consequences, such as delaying the progress of the project or affecting the stability of the system. To help developers log more effectively, the authors hope to improve the quality of logging by defining log smells and creating a classification system. ### Methods The authors conducted the research through the following steps: - **Literature review**: Collected 45 relevant papers from Google Scholar and extracted the problems existing in logging. - **Open coding**: Used open - coding techniques to classify the extracted data and identify common problems in logging. - **Card - sorting method**: Classified the identified problems through the card - sorting method and finally formed a classification system for log smells. - **Tool mapping**: Mapped the identified log smells to existing tools to determine which tools can detect or fix these smells. ### Results The main contributions of the paper include: - **Defined a classification system containing ten log smells** and provided a detailed description for each smell. - **Mapped log smells and their aspects to existing tools**, revealed the deficiencies of existing tools in some aspects, and pointed out the direction for future research. Through these works, the authors hope that developers can identify potential log problems at an early stage, thereby avoiding more serious problems, and can use existing tools to improve the quality of logging.