Skip to content
Snippets Groups Projects
Commit e8a41ec2 authored by michael.minelli's avatar michael.minelli
Browse files

Add logger based on winston library

parent 8169e47c
No related branches found
No related tags found
No related merge requests found
import winston from 'winston';
import SharedConfig from '../config/SharedConfig';
import * as Transport from 'winston-transport';
const levels = {
error: 0,
warn : 1,
info : 2,
http : 3,
debug: 4
};
const colors = {
error: 'red',
warn : 'yellow',
info : 'green',
http : 'magenta',
debug: 'white'
};
winston.addColors(colors);
const format = winston.format.combine(winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:ms' }), SharedConfig.production ? winston.format.uncolorize() : winston.format.colorize({ all: true }), winston.format.printf((info) => `${ info.timestamp } [${ process.pid }] ${ info.level }: ${ info.message }`));
const commonTransportOptions = {
handleRejections: true,
handleExceptions: true
};
let transports: Array<Transport> = [ new winston.transports.Console({
...commonTransportOptions,
level: 'debug'
}) ];
if ( SharedConfig.production ) {
const commonFileOptions = {
...commonTransportOptions,
maxsize : 5242880, // 5MB
maxFiles: 100,
tailable: true
};
transports = transports.concat([ new winston.transports.File({
...commonFileOptions,
filename: `${ SharedConfig.logsFolder }/error.log`,
level : 'error'
}), new winston.transports.File({
...commonFileOptions,
filename: `${ SharedConfig.logsFolder }/all.log`,
level : 'debug'
}) ]);
}
const logger = winston.createLogger({
levels,
format,
transports,
exitOnError: false
});
export default logger;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment