4front-logger

Bunyan based logger for 4front

Usage no npm install needed!

<script type="module">
  import frontLogger from 'https://cdn.skypack.dev/4front-logger';
</script>

README

4front-logger

NPM Version NPM Downloads Build Status Test Coverage

http://4front.io

Default logger for the 4front multi-tenant web app platform. Learn more at: 4front.io

Internally bunyan is used for JSON logging. In accordance with 12 factor app practices, by default errors and warnings are are streamed to process.stderr and info level messages are streamed to process.stdout. This behavior can be overridden via the options as described below. Recommended practice is to setup a log sink external to the node app which sends log events from all servers in a cluster to a centralized logging system such as Splunk, Loggly, or Papertrail.

Installation

npm install 4front-logger

Usage

var app = express();
var log = require('4front-logger')({
  loggerName: "4front-logger"
});

// Register the logger with 4front
app.settings.logger = log;

Options

loggerName The name of the logger which will be added by

errStream The stream where error level messages are written. Defaults to process.stderr.

warnStream The stream where warn level messages are written. Defaults to process.stderr.

infoStream The stream where info level messages are written. Defaults to process.stdout.

ignoreErrorStatus Array of http err.status codes to ignore. Defaults to [404].

API

Any of the methods error, warn, or info can be called in all the ways that bunyan supports:

log.info("informational message");
log.info({foo: 'bar'}, 'hi');

Additionally the error function includes a special overload that accepts an Error object and an Express req object. The logger will ensure that all the error detail along with additional contextual information found on the req are captured in the log entry. 4front uses this method in error handling middleware:

app.use(function(err, req, res, next) {
    log.error(err, req);
    next();
});

Running Tests

npm test

License

Licensed under the Apache License, Version 2.0. See the top-level file LICENSE.txt and (http://www.apache.org/licenses/LICENSE-2.0).