Introduction
As developers, we often find ourselves juggling multiple terminal sessions to monitor logs from various services in our projects. This can become cumbersome and inefficient, especially when working with complex applications that include frontend, backend, and other services. Inspired by the convenience of Docker Compose's log stream, I sought to create a tool that would consolidate log monitoring into a single, user-friendly interface: Tail Gazer.
The Problem: Scattered Log Monitoring
In a typical project setup, you might have separate terminal sessions for your frontend, backend, and other services. This scattered approach makes it difficult to keep track of logs, identify issues, and maintain a consistent workflow. Furthermore, switching between terminal sessions can be time-consuming and frustrating, particularly when troubleshooting problems.
The Solution: Tail Gazer - A Unified Log Monitoring Tool
Tail Gazer is a command-line tool that consolidates logs from multiple services, providing a single point of access for monitoring your project's log output. With an easy-to-use JSON configuration file, you can define your services, their working directories, and the commands used to start them. Tail Gazer then presents the logs in a color-coded, readable format, making it simple to track the activity of each service.
How Tail Gazer Works: Streamlined Log Monitoring
To start using Tail Gazer, follow these steps:
- Install the package globally with npm:
npm install -g tail-gazer
- Create a configuration file named
tail-gazer.json
in your project directory. This file should include an array of service objects, each with the following properties: - name: The name of the service
- dir: The working directory for the service
- command: The command to start the service
- logFile (optional): The file path to log service output to
Here's an example configuration for a project with frontend and backend services:
{
"services": [
{
"name": "Frontend Service",
"dir": "./frontend",
"command": "npm run dev",
"logFile": "./logs/frontend.log"
},
{
"name": "Backend Service",
"dir": "./backend",
"command": "python app.py"
}
]
}
- Run Tail Gazer in the directory containing your configuration file:
tail-gazer
You can also specify a custom configuration file with the --config
or -c
option:
tail-gazer --config my-tail-gazer-config.json
Tail Gazer will display the logs of all specified services in a single console output, using distinct colors for each service to improve readability. If the logFile
property is provided, Tail Gazer will also create a tail-gazer-logs
directory in the current directory and save log files there.
Additional Benefits of Tail Gazer
Tail Gazer not only simplifies log monitoring but also offers several other advantages:
- Saves time by eliminating the need to switch between multiple terminal sessions
- Facilitates troubleshooting by providing a consistent log stream across all services
Take Action: Try Tail Gazer Today
Ready to streamline your log monitoring? Give Tail Gazer a try! Visit the GitHub repository and npm package for more information. If you have questions, suggestions, or would like to contribute