Sunday 24 March 2019

(Express) Error logging best practices/tips

I would like to know some best practices, tips or your experiences for error logging an API during. I plan on using PM2 and i know they have some type of logging built in for console.logs, but I'm not sure that is the way to go. Also I've looked into Sentry which seems absolutely amazing, but it's a bit pricy for me right now. Currently I run a setup similar to this.// index.js const bunyan = require('bunyan'); const express = require('express'); // Express App const app = express(); // Create the logger const logger = bunyan.createLogger({ name: 'API', serializers: { err: bunyan.stdSerializers.err, req: bunyan.stdSerializers.req, }, streams: [ { type: 'rotating-file', path: appRoot.resolve('./logs/api.log'), period: '1d', count: 14 } ] }); // Require app routes require('./routes')(app, logger); // Error middleware app.use((req, res, next) => { logger.error(res.locals.err); }) ​//routes.js module.exports = (app, logger) => { app.get('/some-function', (res, req, next) => { try { doSomething(); } catch (err) { if(err instanceof KnownError ) { logger.warn(err); } else { res.locals.err = err; next(); } } }) } I would love to get your opinions and recommendations on this

Submitted March 24, 2019 at 11:52AM by runo9

No comments:

Post a Comment