Studying the Use of Java']Java Logging Utilities in the Wild

被引:15
|
作者
Chen, Boyuan [1 ]
Jiang, Zhen Ming [1 ]
机构
[1] York Univ, Toronto, ON, Canada
来源
2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020) | 2020年
关键词
empirical software engineering; logging code; logging practices; LARGE-SCALE; SOFTWARE;
D O I
10.1145/3377811.3380408
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software logging is widely used in practice. Logs have been used for a variety of purposes like debugging, monitoring, security compliance, and business analytics. Instead of directly invoking the standard output functions, developers usually prefer to use logging utilities (LUs) (e.g., SLF4J), which provide additional functionalities like thread-safety and verbosity level support, to instrument their source code. Many of the previous research works on software logging are focused on the log printing code. There are very few works studying the use of LUs, although new LUs are constantly being introduced by companies and researchers. In this paper, we conducted a large-scale empirical study on the use of Java LUs in the wild. We analyzed the use of 3, 856 LUs from 11, 194 projects in GitHub and found that many projects have complex usage patterns for LUs. For example, 75.8% of the large-sized projects have implemented their own LUs in their projects. More than 50% of these projects use at least three LUs. We conducted further qualitative studies to better understand and characterize the complex use of LUs. Our findings show that different LUs are used for a variety of reasons (e.g., internationalization of the log messages). Some projects develop their own LUs to satisfy project-specific logging needs (e.g., defining the logging format). Multiple uses of LUs in one project are pretty common for large and very large-sized projects mainly for context like enabling and configuring the logging behavior for the imported packages. Interviewing with 13 industrial developers showed that our findings are also generally true for industrial projects and are considered as very helpful for them to better configure and manage the logging behavior for their projects. The findings and the implications presented in this paper will be useful for developers and researchers who are interested in developing and maintaining LUs.
引用
收藏
页码:397 / 408
页数:12
相关论文
共 50 条
  • [31] Characteristics of method extractions in Java']Java: a large scale empirical study
    Hora, Andre
    Robbes, Romain
    EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (03) : 1798 - 1833
  • [32] Evaluation of a model-based testing platform for Java']Java applications
    Villalobos-Arias, Leonardo
    Quesada-Lopez, Christian
    Martinez, Alexandra
    Jenkins, Marcelo
    IET SOFTWARE, 2020, 14 (02) : 115 - 128
  • [33] Evaluation of the 'replace constructors with creation methods' refactoring in Java']Java systems
    Counsell, S.
    Loizou, G.
    Najjar, R.
    IET SOFTWARE, 2010, 4 (05) : 318 - 333
  • [34] A Java']Java application to characterize biomolecules and nanomaterials in electrolyte aqueous solutions
    Marucho, Marcelo
    COMPUTER PHYSICS COMMUNICATIONS, 2019, 242 : 104 - 119
  • [35] Safe Automated Refactoring for Intelligent Parallelization of Java']Java 8 Streams
    Khatchadourian, Raffi
    Tang, Yiming
    Bagherzadeh, Mehdi
    Ahmed, Syed
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 2019, : 619 - 630
  • [36] Java']Java web tools for PCR, in silico PCR, and oligonucleotide assembly and analysis
    Kalendar, Ruslan
    Lee, David
    Schulman, Alan H.
    GENOMICS, 2011, 98 (02) : 137 - 144
  • [37] A JAVA']JAVA-DSP INTERFACE FOR ANALYSIS OF THE MP3 ALGORITHM
    Huang, Chih-Wei
    Thiagarajan, Jayaraman J.
    Spanias, Andreas
    Pattichis, Constantinos
    2011 IEEE DIGITAL SIGNAL PROCESSING WORKSHOP AND IEEE SIGNAL PROCESSING EDUCATION WORKSHOP (DSP/SPE), 2011, : 168 - 173
  • [38] Programming multirobot applications using the ThinkingCap-II Java']Java framework
    Martinez-Barbera, H.
    Herrero-Perez, D.
    ADVANCED ENGINEERING INFORMATICS, 2010, 24 (01) : 62 - 75
  • [39] JEMMA: An extensible Java']Java dataset for ML4Code applications
    Karmakar, Anjan
    Allamanis, Miltiadis
    Robbes, Romain
    EMPIRICAL SOFTWARE ENGINEERING, 2023, 28 (02)
  • [40] HEAT AND MASS TRANSFER COURSEWARE DEVELOPMENT WITH EASY JAVA']JAVA SIMULATIONS AND MOODLE
    Hernandez-Morales, B.
    Gonzalez-Lopez, J. R.
    Fernandez-Flores, R.
    INTED2011: 5TH INTERNATIONAL TECHNOLOGY, EDUCATION AND DEVELOPMENT CONFERENCE, 2011, : 2924 - 2931