war

wartremover

stream transform to turn bunyan json log entries into plaintext

Showing:

Popularity

Downloads/wk

334

GitHub Stars

0

Maintenance

Last Commit

5yrs ago

Contributors

2

Package

Dependencies

1

License

Apache-2.0

Type Definitions

Built-In

Tree-Shakeable

No?

Categories

Readme

wartremover

Bunyan writes log records as json, and provides a command-line tool to parse the json and generate pretty, colored text for humans.

Wartremover allows the human-readable text to be generated inside your server code. It's a stream transform that accepts bunyan json logging and writes human-formatted text.

Unlike bunyan, it enforces a "one log entry per line" policy. Every line must be a complete entry, with timestamp and log-level prefix. (An exception is made for stack traces, which are written on multiple lines atomically, but each line will still contain the same prefix.)

Example:

import * as bunyan from "bunyan";
import { WartRemover } from "wartremover";

const wart = new WartRemover();
wart.pipe(process.stdout);
const log = bunyan.createLogger({ name: "myserver", streams: [ { level: "debug", stream: wart } ]);

log.info("I am writing a debug message!");

Sample log line:

[20141230-06:21:34.773] INF myserver: I am writing a debug message!

Options

The WartRemover class takes an options object in its constructor. The available options are:

  • color: true/false, whether to use ANSI colors in the output (default: true)

  • stringifiers: object, a map of log record keys and functions to stringify them. For example, if you add a req record to logs like this:

log.debug({ req: { method: "GET", url: "/lamp", responseCode: "200" } }, "...");

then you can tell WartRemover how to turn the request object into a string by passing:

stringifiers: {
  req: function (req) {
    return "url=" + req.url + " method=" + req.method + " code=" + req.responseCode;
  }
}
  • headerFields: array, a list of fields that should appear in the header, at the beginning of the log line, instead of attached to the end

License

Apache 2 (open-source) license, included in 'LICENSE.txt'.

Authors

@robey - Robey Pointer robeypointer@gmail.com

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial