Leveraging Code Clones and Natural Language Processing for Log Statement
  Prediction
  Software developers embed logging statements inside the source code as an
imperative duty in modern software development as log files are necessary for
tracking down runtime system issues and troubleshooting system management
tasks. Prior research has emphasized the importance of logging statements in
the operation and debugging of software systems. However, the current logging
process is mostly manual and ad hoc, and thus, proper placement and content of
logging statements remain as challenges. To overcome these challenges, methods
that aim to automate log placement and log content, i.e., 'where, what, and how
to log', are of high interest. Thus, we propose to accomplish the goal of this
research, that is "to predict the log statements by utilizing source code
clones and natural language processing (NLP)", as these approaches provide
additional context and advantage for log prediction. We pursue the following
four research objectives: (RO1) investigate whether source code clones can be
leveraged for log statement location prediction, (RO2) propose a clone-based
approach for log statement prediction, (RO3) predict log statement's
description with code-clone and NLP models, and (RO4) examine approaches to
automatically predict additional details of the log statement, such as its
verbosity level and variables. For this purpose, we perform an experimental
analysis on seven open-source java projects, extract their method-level code
clones, investigate their attributes, and utilize them for log location and
description prediction. Our work demonstrates the effectiveness of log-aware
clone detection for automated log location and description prediction and
outperforms the prior work.
