A Systematic Review of Logging Practice in Software Engineering

Background: Logging practice is a critical activity in software development, which aims to offer significant information to understand the runtime behavior of software systems and support better software maintenance. There have been many relevant studies dedicated to logging practice in software engineering recently, yet it lacks a systematic understanding to the adoption state of logging practice in industry and research progress in academia. Objective: This study aims to synthesize relevant studies on the logging practice and portray a big picture of logging practice in software engineering so as to understand current adoption status and identify research opportunities. Method: We carried out a systematic review on the relevant studies on logging practice in software engineering. Results: Our study identified 41 primary studies relevant to logging practice. Typical findings are: (1) Logging practice attracts broad interests among researchers in many concrete research areas. (2) Logging practice occurred in many development types, among which the development of fault tolerance systems is the most adopted type. (3) Many challenges exist in current logging practice in software engineering, e.g., tradeoff between logging overhead and analysis cost, where and what to log, balance between enough logging and system performance, etc. Conclusion: Results show that logging practice plays a vital role in various applications for diverse purposes. However, there are many challenges and problems to be solved. Therefore, various novel techniques are necessary to guide developers conducting logging practice and improve the performance and efficiency of logging practice.

[1]  Chuang Liu,et al.  The Unified Logging Infrastructure for Data Analytics at Twitter , 2012, Proc. VLDB Endow..

[2]  Ahmed E. Hassan,et al.  Leveraging Performance Counters and Execution Logs to Diagnose Memory-Related Performance Issues , 2013, 2013 IEEE International Conference on Software Maintenance.

[3]  Domenico Cotroneo,et al.  Industry Practices and Event Logging: Assessment of a Critical Software Development Process , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[4]  Rafael Accorsi,et al.  Personalization in privacy-aware highly dynamic systems , 2006, CACM.

[5]  Laxmikant V. Kalé,et al.  Camel: collective-aware message logging , 2015, The Journal of Supercomputing.

[6]  R. Accorsi Towards a Secure Logging Mechanism for Dynamic Systems , 2005 .

[7]  J. P. Leite Analysis of log files as a security aid , 2011, 6th Iberian Conference on Information Systems and Technologies (CISTI 2011).

[8]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[9]  Qiang Fu,et al.  Where do developers log? an empirical study on logging practices in industry , 2014, ICSE Companion.

[10]  Wei Xu,et al.  Advances and challenges in log analysis , 2011, Commun. ACM.

[11]  Lorenzo Alvisi,et al.  Reasons for a pessimistic or optimistic message logging protocol in MPI uncoordinated failure, recovery , 2009, 2009 IEEE International Conference on Cluster Computing and Workshops.

[12]  Willy Zwaenepoel,et al.  On the use and implementation of message logging , 1994, Proceedings of IEEE 24th International Symposium on Fault- Tolerant Computing.

[13]  Ding Yuan,et al.  Improving Software Diagnosability via Log Enhancement , 2012, TOCS.

[14]  A. Prasad Sistla,et al.  Efficient distributed recovery using message logging , 1989, PODC '89.

[15]  Neetu Sardana,et al.  LogOptPlus: Learning to Optimize Logging in Catch and If Programming Constructs , 2016, 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC).

[16]  Muhammad Ali Babar,et al.  Identifying relevant studies in software engineering , 2011, Inf. Softw. Technol..

[17]  Ding Yuan,et al.  SherLog: error diagnosis by connecting clues from run-time logs , 2010, ASPLOS XV.