gx
chenyc
2025-12-10 1daaf55ceac01b00be25aecc7efb57cf47a34155
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// logger.js
const winston = require('winston');
 
const logger = winston.createLogger({
  level: process.env.LOG_LEVEL || 'info',
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.printf(({ timestamp, level, message, ...meta }) => {
      const metaStr = Object.keys(meta).length ? JSON.stringify(meta) : '';
      return `${timestamp} [${level.toUpperCase().padEnd(7)}] ${message} ${metaStr}`.trim();
    })
  ),
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
    new winston.transports.File({ filename: 'logs/access.log' })
  ]
});
 
module.exports = logger;