4front-logger
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"
});
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).