@thecolvinco/nodejs-logger
v0.6.1
Published
Nodejs/Express colvin logs standard
Downloads
90
Readme
Colvin nodejs logger
A logger abstraction to log message with standard structure and with some useful middlewares
Logger usage
import { Logger } from '@thecolvinco/nodejs-logger';
const logger = new Logger({
appName: 'My foo app',
appVersion: '1',
enviroment: 'production',
isProduction: true,
loggerOptions: {}, // Optional for override pourpose
});
logger.info('A simple message')
logger.info('Some fancy message with tags', { tags: ['super-drama', 'fancy-error'] })
logger.info('Some fancy message with tags and extra object data', { tags: ['super-drama', 'fancy-error'], meta: { foo: 'bar' } })
Development output
{
tags: [ 'super-drama', 'fancy-error' ],
meta: { foo: 'bar' },
level: 'info',
message: 'Some fancy message with tags and extra object data'
}
Production output
{"version":"1","appName":"My foo app","enviroment":"production","tags":["super-drama","fancy-error"],"meta":{"foo":"bar"},"level":"info","message":"Some fancy message with tags and extra object data"}
Middleware usages
import { Logger, expressErrorMiddleware, expressWinstonRequestMiddleware } from '@thecolvinco/nodejs-logger';
const server = express();
const logger = new Logger(
{
appName: 'foo',
appVersion: '1',
enviroment: 'production',
isProduction: true,
}
);
// Log non controlled errors
server.use(expressErrorMiddleware(logger));
// Log all express requests with winston
server.use(expressWinstonRequestMiddleware(logger);
// Log all express requests with winston adding some winston options
server.use(expressWinstonRequestMiddleware(logger, {
headerBlacklist: ['cookie'],
dynamicMeta: (req) => ({
countryCode: req?.cookies?.hc,
locale: req?.cookies?.hl,
})},
));
About
This package is maintained by TheColvinCo
LICENSE
Code is licensed under the MIT License.