Characterizing logging practices in open-source software
- 1 June 2012
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE) in 2012 34th International Conference on Software Engineering (ICSE)
Abstract
Software logging is a conventional programming practice. While its efficacy is often important for users and developers to understand what have happened in the production run, yet software logging is often done in an arbitrary manner. So far, there have been little study for understanding logging practices in real world software. This paper makes the first attempt (to the best of our knowledge) to provide a quantitative characteristic study of the current log messages within four pieces of large open-source software. First, we quantitatively show that software logging is pervasive. By examining developers' own modifications to the logging code in the revision history, we find that they often do not make the log messages right in their first attempts, and thus need to spend a significant amount of efforts to modify the log messages as after-thoughts. Our study further provides several interesting findings on where developers spend most of their efforts in modifying the log messages, which can give insights for programmers, tool developers, and language and compiler designers to improve the current logging practice. To demonstrate the benefit of our study, we built a simple checker based on one of our findings and effectively detected 138 pieces of new problematic logging code from studied software (24 of them are already confirmed and fixed by developers).Keywords
This publication has 18 references indexed in Scilit:
- Improving software diagnosability via log enhancementPublished by Association for Computing Machinery (ACM) ,2011
- SherLogPublished by Association for Computing Machinery (ACM) ,2010
- A toolset for automated failure analysisPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2009
- Automated Identification of Failure Causes in System LogsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2008
- Use of relative code churn measures to predict system defect densityPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Low-overhead memory leak detection using adaptive statistical profilingPublished by Association for Computing Machinery (ACM) ,2004
- Predicting source code changes by mining change historyIEEE Transactions on Software Engineering, 2004
- Code churn: a measure for estimating the impact of code changePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Isolating cause-effect chains from computer programsPublished by Association for Computing Machinery (ACM) ,2002
- Fault injection techniques and toolsComputer, 1997