Ninetails

Ninetails is a purpose-built log watching service. It comes from a long history of working across macOS and Linux environments, supporting and administering different types of services and applications. For example, everyone who finds some of their day processing the output of log files, either as a developer or an administrator, you may see log lines like the below.

While these log lines are basic, you can run a grep comment or sed with some substations to highlight pieces of information that are important to you. While some logs are structured JSON or TOML, some are just plaintext, and it makes it harder to parse those logs. Ninetails supports all output formats.

In comparison, Ninetails gives us the ability to define a matching criteria either for the whole line, grep style, or using RegEx patterns. An example of the before an after is below.

Using Ninetails

Ninetails can run directly in the command line by taking stdin or by referencing a file. It operates similar to tail where it can read a byte buffer from a file as it’s modified. It currently does not support rotations on files or renames.

One huge benefit of Ninetails is the ability to use a per-project configuration file. We have a specific config file we add to the root of all of our projects, so everyone can get the same view when they’re debugging. Ninetails will automatically read the config relative to the local directory.

To get started with a configuration file, create a .ninetails.yml file:

There are default colors available to use in your configuration. You can also add your own colors using a color: block of key: value.

BABYBLUE 
BLUE 
CLEAR 
DARKGREY 
GREEN 
GREY 
LIGHTGREY 
LIGHTPINK 
ORANGE 
PINK 
PURPLE 
RED 
RESET 
WHITE 
YELLOW

One of the benefits we get from using Ninetails is highlighting ERROR’s with red and INFO with green.

Gotta Catch ’em All!

You can get your hands on Ninetails by visiting the GitHub release page located at https://github.com/mikemackintosh/ninetails/releases.

Share this post