ABSTRACT
Developers leverage logs for debugging, performance monitoring and load testing. The increased dependence on logs has lead to the development of numerous logging libraries which help developers in logging their code. As new libraries emerge and current ones evolve, projects often migrate from an older library to another one.
In this paper we study logging library migrations within Apache Software Foundation (ASF) projects. From our manual analysis of JIRA issues, we find that 33 out of 223 (i.e., 14%) ASF projects have undergone at least one logging library migration. We find that the five main drivers for logging library migration are: 1) to increase flexibility (i.e., the ability to use different logging libraries within a project) 2) to improve performance, 3) to reduce effort spent on code maintenance, 4) to reduce dependence on other libraries and 5) to obtain specific features from the new logging library. We find that over 70% of the migrated projects encounter on average two post-migration bugs due to the new logging library. Furthermore, our findings suggest that performance (traditionally one of the primary drivers for migrations) is rarely improved after a migration.
- Class loader - http://articles.qos.ch/classloader.html.Google Scholar
- Concatenated vs parameterized form. http://www.javacodegeeks.com/2013/03/java-stringbuilder-myth-debunked.html.Google Scholar
- https://github.com/rosarinjroy/log4j-to-slf4j.Google Scholar
- Java logging libraries:. http://java-source.net/open-source/logging.Google Scholar
- Log level:. https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html.Google Scholar
- Log4j manual:. https://logging.apache.org/log4j/1.2/manual.html.Google Scholar
- Log4j2- https://logging.apache.org/log4j/2.x/performance.html.Google Scholar
- Log4j2-migrator:. https://github.com/mulesoft-labs/log4j2-migrator.Google Scholar
- Logback -- http://logback.qos.ch/reasonstoswitch.html.Google Scholar
- Projects in asf:. https://projects.apache.org/projects.html?language.Google Scholar
- Slf4j -- http://www.slf4j.org/faq.html.Google Scholar
- Slf4j-migrator. https://github.com/ghosert/SLF4J-Migrator.Google Scholar
- Slf4j tool - http://www.slf4j.org/migrator.html.Google Scholar
- String concatenation performance:. {http://blog.eyallupu.com/2010/09/under-hood-of-java-strings.html}.Google Scholar
- Q. Fu, J.-G. Lou, Y. Wang, and J. Li. Execution anomaly detection in distributed systems through unstructured log analysis. In ICDM'09: Proceedings of the 9th IEEE International Conference on Data Mining, pages 149--158. IEEE, 2009. Google ScholarDigital Library
- E. A. Gehan. A generalized wilcoxon test for comparing arbitrarily singly-censored samples. Biometrika, 52(1-2):203--223, 1965.Google ScholarCross Ref
- M. http://logback.qos.ch/manual/mdc.html.Google Scholar
- Z. M. Jiang, A. Hassan, G. Hamann, and P. Flora. Automatic identification of load testing problems. In ICSM '08: Proceedings of the IEEE International Conference on Software Maintenance, pages 307--316, IEEE, 2008.Google ScholarCross Ref
- Z. M. Jiang, A. E. Hassan, G. Hamann, and P. Flora. Automated performance analysis of load tests. In ICSM '09: Proceedings of the IEEE International Conference on Software Maintenance, pages 125--134. IEEE, 2009.Google ScholarCross Ref
- P. Kapur, B. Cossette, and R. J. Walker. Refactoring references for library migration. In ACM SIGPLAN Notices, volume 45, pages 726--738. ACM, 2010. Google ScholarDigital Library
- R. Lämmel, E. Pek, and J. Starek. Large-scale, ast-based api-usage analysis of open-source java projects. In SAC'11: Proceedings of the ACM Symposium on Applied Computing, pages 1317--1324. ACM, 2011. Google ScholarDigital Library
- J. D. Long, D. Feng, and N. Cliff. Ordinal analysis of behavioral data. Handbook of psychology, 2003.Google Scholar
- J.-G. Lou, Q. Fu, S. Yang, Y. Xu, and J. Li. Mining invariants from console logs for system problem detection. In USENIX'10: Proceedings of 10th Conference on USENIX Annual Technical Conference, pages 24--24. USENIX Association, 2010. Google ScholarDigital Library
- Y. M. Mileva, V. Dallmeier, M. Burger, and A. Zeller. Mining trends of library usage. In Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops, pages 57--62. ACM, 2009. Google ScholarDigital Library
- J. Romano, J. D. Kromrey, J. Coraggio, J. Skowronek, and L. Devine. Exploring methods for evaluating group differences on the nsse and other surveys: Are the t-test and cohens'd indices the most appropriate choices. In annual meeting of the Southern Association for Institutional Research, 2006.Google Scholar
- W. Shang, Z. M. Jiang, B. Adams, A. E. Hassan, M. W. Godfrey, M. Nasser, and P. Flora. An exploratory study of the evolution of communicated information about the execution of large software systems. Journal of Software: Evolution and Process, 26(1):3--26, 2014.Google ScholarCross Ref
- C. Teyton, J.-R. Fallen, and X. Blanc. Mining library migration graphs. In WCRE '12: Proceedings of the 19th Conference on Reverse Engineering, pages 289--298. IEEE, 2012. Google ScholarDigital Library
- C. Teyton, J.-R. Fallen, M. Palyart, and X. Blanc. A study of library migrations in java. Journal of Software: Evolution and Process, 26(11): 1030--1052, 2014. Google ScholarDigital Library
- W. Xu, L. Huang, A. Fox, D. Patterson, and M. I. Jordan. Detecting large-scale system problems by mining console logs. In SOPS 2009: Proceedings of the 22nd Symposium on Operating Systems Principle, pages 117--132. Google ScholarDigital Library
- D. Yuan, H. Mai, W. Xiong, L. Tan, Y. Zhou, and S. Pasupathy. Sherlog: Error diagnosis by connecting clues from run-time logs. In ASPLOS '10: Proceedings of the 15th Edition of Architectural Support for Programming Languages and Operating Systems, pages 143--154. ACM, 2010. Google ScholarDigital Library
Recommendations
Resource availability based performance benchmarking of virtual machine migrations
ICPE '13: Proceedings of the 4th ACM/SPEC International Conference on Performance EngineeringVirtual machine migration enables load balancing, hot spot mitigation and server consolidation in virtualized environments. Live VM migration can be of two types - adaptive, in which the rate of page transfer adapts to virtual machine behaviour (mainly ...
A large-scale empirical study on Java library migrations: prevalence, trends, and rationales
ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringWith the rise of open-source software and package hosting platforms, reusing 3rd-party libraries has become a common practice. Due to various failures during software evolution, a project may remove a used library and replace it with another library, ...
Using Model Checking to Evaluate Live Migrations
Server virtualization technologies and their live migration function support more efficient use of computing resources in cloud datacenters. However, many management operations for virtual machines can be evoked simultaneously in large-scale systems. ...
Comments