Log++ logging for a cloud-native world
- 6 April 2020
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 53 (8), 25-36
- https://doi.org/10.1145/3393673.3276952
Abstract
Logging is a fundamental part of the software development and deployment lifecycle but logging support is often provided as an afterthought via limited library APIs or third-party modules. Given the critical nature of logging in modern cloud, mobile, and IoT development workflows, the unique needs of the APIs involved, and the opportunities for optimization using semantic knowledge, we argue logging should be included as a central part of the language and runtime designs. This paper presents a rethinking of the logger for modern cloud-native workflows. Based on a set of design principles for modern logging we build a logging system, that supports near zero-cost for disabled log statements, low cost lazy-copying for enabled log statements, selective persistence of logging output, unified control of logging output across different libraries, and DevOps integration for use with modern cloud-based deployments. To evaluate these concepts we implemented the Log++ logger for Node.js hosted JavaScript applications.Keywords
This publication has 14 references indexed in Scilit:
- Semantics of asynchronous JavaScriptPublished by Association for Computing Machinery (ACM) ,2017
- Characterizing and Detecting Anti-Patterns in the Logging CodePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2017
- A type system for format stringsPublished by Association for Computing Machinery (ACM) ,2014
- Where do developers log? an empirical study on logging practices in industryPublished by Association for Computing Machinery (ACM) ,2014
- The unified logging infrastructure for data analytics at TwitterProceedings of the VLDB Endowment, 2012
- Characterizing logging practices in open-source softwarePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2012
- Advances and challenges in log analysisCommunications of the ACM, 2012
- An Exploratory Study of the Evolution of Communicated Information about the Execution of Large Software SystemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2011
- Improving software diagnosability via log enhancementPublished by Association for Computing Machinery (ACM) ,2011
- Identification of Heap–Carried Data Dependence Via Explicit Store Heap ModelsLecture Notes in Computer Science, 2008