DevelopmentKitchen is an opinionated logging framework for your web app that lets you log with a full awareness of app features and data entities.
Traditional logging frameworks are designed around sending raw text logs, with some additional metadata. The drawback of this approach is that you have to spend significant effort to develop and maintain a meaningful analysis of the raw data. You have to build mechanisms to correlate log events, and tie them in some way to your app's features and entities.
Benefits of an opinionated logging framework
DevelopmentKitchen provides an opinionated framework that requires log events to be part of a log trail, and ties log trails to your app's features and data entities.
This gives you some huge benefits out-of-the-box compared to traditional logging:
- You don't have to setup any separate analysis to cut through noisy logging: you will have a clear trail of events for any particular feature invocation in your app.
- You will instantly get metrics on what features are being used the most and what features are being used the least.
- You will get instant metrics on the success rate of a particular feature in production, and how many times it has failed for users in production.
- You can dig into the specific trail of events that lead to failures, without any unrelated event noise
- You can see a clear history of how data entities in your app have changed in order to troubleshoot and measure
All logging in DevelopmentKitchen is structured into log trails. A log trial groups together all log events related to a particular feature invocation in your application, even if they span across multiple threads of execution.
For example, you can create a new log trail when a user creates a new blog post in your app. All events that relate to creating that new blog post would then be part of the log trail: starting in the UI, continuing into the HTTP API request handler, and then into a background indexing job.
You can also link together several log trails that may be related but part of a separate feature invocation. For example, you might link the log trails for adding a comment to the log trail for creating the blog post.
In order to tie log trails to features in your app, you can just start emitting "feature started" or "feature ended" events and DevelopmentKitchen will start tracking those features.
You can also separately create and manage a hierarchical tree of the features in your application. In addition to being a mechanism to document the features in your application, this also gives you some metrics out-of-the-box.
You can immediately start to see what features of your app are used, and which ones are not. You will also get an overview of how successful your app's features are in production.