get-express-starter
Version:
Get production ready express boilerplate with a single command
25 lines (22 loc) • 691 B
text/typescript
import { env } from '@/config/env';
import winston from 'winston';
const enumerateErrorFormat = winston.format((info) => {
if (info instanceof Error) {
Object.assign(info, { message: info.stack });
}
return info;
});
export const logger = winston.createLogger({
level: env.mode === 'development' ? 'debug' : 'info',
format: winston.format.combine(
enumerateErrorFormat(),
env.mode === 'development' ? winston.format.colorize() : winston.format.uncolorize(),
winston.format.splat(),
winston.format.printf(({ level, message }) => `${level}: ${message}`),
),
transports: [
new winston.transports.Console({
stderrLevels: ['error'],
}),
],
});