wartremover
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i wartremover

Weekly Downloads

2,121

Version

3.0.0

License

Apache-2.0

Last publish

Collaborators

  • robey