skip to main content
10.1145/2901739.2901769acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Logging library migrations: a case study for the apache software foundation projects

Published:14 May 2016Publication History

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.

References

  1. Class loader - http://articles.qos.ch/classloader.html.Google ScholarGoogle Scholar
  2. Concatenated vs parameterized form. http://www.javacodegeeks.com/2013/03/java-stringbuilder-myth-debunked.html.Google ScholarGoogle Scholar
  3. https://github.com/rosarinjroy/log4j-to-slf4j.Google ScholarGoogle Scholar
  4. Java logging libraries:. http://java-source.net/open-source/logging.Google ScholarGoogle Scholar
  5. Log level:. https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html.Google ScholarGoogle Scholar
  6. Log4j manual:. https://logging.apache.org/log4j/1.2/manual.html.Google ScholarGoogle Scholar
  7. Log4j2- https://logging.apache.org/log4j/2.x/performance.html.Google ScholarGoogle Scholar
  8. Log4j2-migrator:. https://github.com/mulesoft-labs/log4j2-migrator.Google ScholarGoogle Scholar
  9. Logback -- http://logback.qos.ch/reasonstoswitch.html.Google ScholarGoogle Scholar
  10. Projects in asf:. https://projects.apache.org/projects.html?language.Google ScholarGoogle Scholar
  11. Slf4j -- http://www.slf4j.org/faq.html.Google ScholarGoogle Scholar
  12. Slf4j-migrator. https://github.com/ghosert/SLF4J-Migrator.Google ScholarGoogle Scholar
  13. Slf4j tool - http://www.slf4j.org/migrator.html.Google ScholarGoogle Scholar
  14. String concatenation performance:. {http://blog.eyallupu.com/2010/09/under-hood-of-java-strings.html}.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. A. Gehan. A generalized wilcoxon test for comparing arbitrarily singly-censored samples. Biometrika, 52(1-2):203--223, 1965.Google ScholarGoogle ScholarCross RefCross Ref
  17. M. http://logback.qos.ch/manual/mdc.html.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. D. Long, D. Feng, and N. Cliff. Ordinal analysis of behavioral data. Handbook of psychology, 2003.Google ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarCross RefCross Ref
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    MSR '16: Proceedings of the 13th International Conference on Mining Software Repositories
    May 2016
    544 pages
    ISBN:9781450341868
    DOI:10.1145/2901739

    Copyright © 2016 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 14 May 2016

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Upcoming Conference

    ICSE 2025

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader