1234567891011121314151617181920212223242526 |
- import winston, { Logger } from 'winston'
- import stringify from 'fast-safe-stringify'
- const colors = {
- error: 'red',
- warn: 'yellow',
- info: 'green',
- }
- winston.addColors(colors)
- export function createLogger(label: string): Logger {
- return winston.createLogger({
- transports: [new winston.transports.Console()],
- defaultMeta: { label },
- format: winston.format.combine(
- winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:ms' }),
- winston.format.metadata({ fillExcept: ['label', 'level', 'timestamp', 'message'] }),
- winston.format.colorize(),
- winston.format.printf(
- (info) =>
- `${info.timestamp} ${info.label} [${info.level}]: ${info.message}` +
- (Object.keys(info.metadata).length ? `\n${stringify(info.metadata, undefined, 4)}` : '')
- )
- ),
- })
- }
|