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.
Mark Marron is passionate about programming language & software engineering research. His recent focus has been on bringing innovative ideas from the research community into practical tools for Node.js developers and he is leading work on low-overhead diagnostic tracing and time-travel debugging tools at Microsoft Research.
Tue 6 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
13:30 - 15:00 | |||
13:30 30mTalk | Log++ Logging for a Cloud-Native World DLS 2018 Mark Marron Microsoft Research | ||
14:00 30mTalk | HorseIR: Bringing Array Programming Languages Together with Database Query Processing DLS 2018 Hanfeng Chen McGill University, Canada, Joseph Vinish D'Silva McGill University, Canada, Hongji Chen McGill University, Canada, Bettina Kemme McGill University, Canada, Laurie Hendren McGill University, Canada | ||
14:30 30mTalk | JavaScript AOT Compilation DLS 2018 Manuel Serrano Inria, France |