Jiang, Zhen Ming2017-07-272017-07-272016-11-112017-07-27http://hdl.handle.net/10315/33446Log messages (generated by logging code) contain rich information about the runtime behavior of software systems. Although more logging code can provide more context of the system's behavior, it is undesirable to include too much logging code. Yuan et al. performed the first empirical study on characterizing the logging. In the first part of the thesis, we conduct a large-scale replication study on characterizing the logging practices on Java-based open source projects. A significantly higher portion of log updates are for enhancing the quality rather than co-changes with feature implementations. However, there are no well-defined coding guidelines for performing effective logging. In the second part, we studied the problem of characterizing and detecting the anti-patterns in the logging code. We have encoded these anti-patterns into a static code analysis tool, LCAnalyzer. Case studies show that LCAnalyzer has an average recall of 95% and precision of 60% .enAuthor owns copyright, except where explicitly noted. Please contact the author directly with licensing requests.Computer engineeringCharacterizing and Improving Logging Practices in Java-based Open Source Software Projects - A Large-scale Case Study in Apache Software FoundationElectronic Thesis or Dissertation2017-07-27Mining software repositoryLog analysisLogging codeEmpirical study