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 条
  • [41] Remodularizing Java']Java programs for improved locality of feature implementations in source code
    Olszak, Andrzej
    Jorgensen, Bo Norregaard
    SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (03) : 131 - 151
  • [42] Genetic diversity and the origin of commercial plantation of Indonesian teak on Java']Java Island
    Prasetyo, Eko
    Widiyatno
    Indrioko, Sapto
    Na'iem, Mohammad
    Matsui, Tetsuya
    Matsuo, Ayumi
    Suyama, Yoshihisa
    Tsumura, Yoshihiko
    TREE GENETICS & GENOMES, 2020, 16 (02)
  • [43] Automatic Detection and Repair Recommendation of Directive Defects in Java']Java API Documentation
    Zhou, Yu
    Wang, Changzhi
    Yan, Xin
    Chen, Taolue
    Panichella, Sebastiano
    Gall, Harald
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (09) : 1004 - 1023
  • [44] Automated Detection of Software Performance Antipatterns in Java']Java-Based Applications
    Trubiani, Catia
    Pinciroli, Riccardo
    Biaggi, Andrea
    Fontana, Francesca Arcelli
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) : 2873 - 2891
  • [45] A Study of Potential Code Borrowing and License Violations in Java']Java Projects on GitHub
    Golubev, Yaroslav
    Eliseeva, Maria
    Povarov, Nikita
    Bryksin, Timofey
    2020 IEEE/ACM 17TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2020, : 54 - 64
  • [46] RadialPlotter: A Java']Java application for fission track, luminescence and other radial plots
    Vermeesch, Pieter
    RADIATION MEASUREMENTS, 2009, 44 (04) : 409 - 410
  • [47] Challenges for Static Analysis of Java']Java Reflection - Literature Review and Empirical Study
    Landman, Davy
    Serebrenik, Alexander
    Vinju, Jurgen J.
    2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2017, : 507 - 518
  • [48] Sequence Kit: A Java']Java Package to Process Biological Sequence and Sequence Set
    Tan, Shenglong
    Chen, Lihong
    Wu, Song
    8TH INTERNATIONAL CONFERENCE ON BIOINFORMATICS AND BIOMEDICAL ENGINEERING (ICBBE 2014), 2014, : 69 - 73
  • [49] A flexible Java']Java representation for uncertainty in online operations-research models
    Shapiro, JA
    Powell, WB
    Bernstein, D
    INFORMS JOURNAL ON COMPUTING, 2001, 13 (01) : 29 - 55
  • [50] Estimating the maintenance effort of Java']JavaScript Applications
    Zozas, Ioannis
    Bibi, Stamatia
    Ampatzoglou, Apostolos
    Sarigiannidis, Panagiotis
    2019 45TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2019), 2019, : 212 - 219