TY - GEN
T1 - An Exploratory Study of Logging Configuration Practice in Java
AU - Zhi, Chen
AU - Yin, Jianwei
AU - Deng, Shuiguang
AU - Ye, Maoxin
AU - Fu, Min
AU - Xie, Tao
N1 - Publisher Copyright:
© 2019 IEEE.
PY - 2019/9
Y1 - 2019/9
N2 - Logging components are an integral element of software systems. These logging components receive the logging requests generated by the logging code and process these requests according to logging configurations. Logging configurations play an important role on the functionality, performance, and reliability of logging. Although recent research has been conducted to understand and improve current practice on logging code, no existing research focuses on logging configurations. To fill this gap, we conduct an exploratory study on logging configuration practice of 10 open-source projects and 10 industrial projects written in Java in various sizes and domains. We quantitatively show how logging configurations are used with respect to logging management, storage, and formatting. We categorize and analyze the change history (1,213 revisions) of logging configurations to understand how the logging configurations evolve. Based on these study results, we reveal 10 findings about current practice of logging configurations. As a proof of concept, we develop a simple detector based on some of our findings. We apply our detector on three popular open-source projects and identify three long-lived issues (more than two years). All these issues are confirmed and two of them have been fixed by the open-source developers.
AB - Logging components are an integral element of software systems. These logging components receive the logging requests generated by the logging code and process these requests according to logging configurations. Logging configurations play an important role on the functionality, performance, and reliability of logging. Although recent research has been conducted to understand and improve current practice on logging code, no existing research focuses on logging configurations. To fill this gap, we conduct an exploratory study on logging configuration practice of 10 open-source projects and 10 industrial projects written in Java in various sizes and domains. We quantitatively show how logging configurations are used with respect to logging management, storage, and formatting. We categorize and analyze the change history (1,213 revisions) of logging configurations to understand how the logging configurations evolve. Based on these study results, we reveal 10 findings about current practice of logging configurations. As a proof of concept, we develop a simple detector based on some of our findings. We apply our detector on three popular open-source projects and identify three long-lived issues (more than two years). All these issues are confirmed and two of them have been fixed by the open-source developers.
KW - empirical study
KW - logging
KW - logging configurations
UR - http://www.scopus.com/inward/record.url?scp=85077220432&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85077220432&partnerID=8YFLogxK
U2 - 10.1109/ICSME.2019.00079
DO - 10.1109/ICSME.2019.00079
M3 - Conference contribution
AN - SCOPUS:85077220432
T3 - Proceedings - 2019 IEEE International Conference on Software Maintenance and Evolution, ICSME 2019
SP - 459
EP - 469
BT - Proceedings - 2019 IEEE International Conference on Software Maintenance and Evolution, ICSME 2019
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 2019 IEEE International Conference on Software Maintenance and Evolution, ICSME 2019
Y2 - 30 September 2019 through 4 October 2019
ER -