在Ubuntu上定制Node.js日志格式,可选用以下工具及技巧:
const logger = winston.createLogger({
format: winston.format.combine(
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
winston.format.printf(({ timestamp, level, message }) => `${timestamp} ${level.toUpperCase()}: ${message}`)
),
transports: [new winston.transports.Console(), new winston.transports.File({ filename: 'app.log' })]
});
app.use(morgan(':method :url :status :response-time ms'));
const logger = pino({
format: pino.format.json({ prettyPrint: true, translateTime: 'YYYY-MM-DD HH:mm:ss' })
});
log4js.configure({
appenders: {
out: { type: 'stdout', layout: { type: 'pattern', pattern: '%d{yyyy-MM-dd HH:mm:ss} [%p] %c - %m%n' } }
},
categories: { default: { appenders: ['out'], level: 'info' } }
});
技巧:
logrotate工具实现日志轮转,避免文件过大。chalk库),提升可读性。