logger.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const winston = require('winston');
  2. const path = require('path');
  3. // 定义日志格式
  4. const logFormat = winston.format.combine(
  5. winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
  6. winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
  7. );
  8. // 创建日志记录器
  9. const logger = winston.createLogger({
  10. level: 'debug', // 日志级别
  11. format: logFormat,
  12. transports: [
  13. // 输出到控制台
  14. new winston.transports.Console({
  15. format: winston.format.combine(
  16. winston.format.colorize(), // 添加颜色
  17. logFormat
  18. )
  19. }),
  20. // 输出到文件
  21. new winston.transports.File({
  22. filename: path.join(__dirname, '../logs', 'app.log'), // 日志文件路径
  23. maxsize: 10485760, // 10MB
  24. maxFiles: 5,
  25. tailable: true
  26. }),
  27. // 添加业务日志分类
  28. new winston.transports.File({
  29. filename: path.join(__dirname, '../logs', 'business.log'), // 业务日志文件路径
  30. format: winston.format.combine(
  31. winston.format.timestamp(),
  32. winston.format.json()
  33. ),
  34. level: 'info' // 业务日志级别
  35. })
  36. ]
  37. });
  38. module.exports = logger;