Unquill
is a lightweight, command-line tool designed to enhance your development experience (DX) when working with services that use the Quill logging library.
Quill produces structured JSON logs. While these logs are great for machine consumption, they can be challenging for engineers to read and understand in a local terminal. Unquill
solves this problem by parsing and formatting Quill logs into a more human-readable format, making it easier to troubleshoot and debug services locally.
You can install Unquill
globally using npm:
npm i -g @rpidanny/unquill-cli
Run Unquill with your application using the following syntax:
unquill [options] -- node app.js
-s
: Include the service name in the log.--jq "<jq-filter>"
: Apply a raw jq filter to include additional fields in the log.
unquill -s --jq ".details.userId" -- node app.js
Unquill is organized as a mono-repository consisting of two main components:
- unquill-cli: The command-line interface (CLI) application.
- unquill-core: The core log parsing component.
For detailed information on each component, refer to their respective READMEs.
Unquill
works with logs that adhere to the following Quill log schema:
export interface FullLog {
level: string;
timestamp: number;
dateString: string;
stage?: string;
environment?: string;
hostname: string;
appName?: string;
componentName?: string;
region?: string;
service?: string;
message?: string;
details?: Record<string, unknown>;
err?: {
name: string;
message: string;
stack?: string;
};
correlationId?: string;
}
If you would like to contribute to Unquill
, please check out the GitHub repository and feel free to submit issues, pull requests, or provide feedback.
Unquill
is open-source software licensed under the MIT License.
Happy log parsing with Unquill
! 🚀