logConfig.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import { utilities as nestWinstonModuleUtilities } from 'nest-winston';
  2. import * as winston from 'winston';
  3. import { join } from 'path';
  4. import configuration from 'src/config/configuration';
  5. import 'winston-daily-rotate-file';
  6. let logDir: string;
  7. if (process.env.NODE_ENV === 'development') {
  8. logDir = join(__dirname, './../log');
  9. console.log('测试服log', logDir);
  10. }
  11. if (process.env.NODE_ENV === 'production') {
  12. logDir = join(configuration().log.logFolder);
  13. console.log('正式服log', logDir);
  14. }
  15. console.log('logDir', logDir);
  16. const dateTransport = new winston.transports.DailyRotateFile({
  17. level: 'verbose',
  18. dirname: logDir,
  19. filename: 'metaverse-%DATE%.log',
  20. datePattern: 'YYYY-MM-DD-HH',
  21. zippedArchive: true,
  22. maxSize: '20m',
  23. maxFiles: '14d',
  24. });
  25. const levels = {
  26. levels: {
  27. error: 0,
  28. warn: 1,
  29. info: 2,
  30. http: 3,
  31. verbose: 4,
  32. debug: 5,
  33. silly: 6,
  34. },
  35. };
  36. export const LoggerConfig = {
  37. levels: levels.levels,
  38. format: winston.format.combine(
  39. winston.format.ms(),
  40. winston.format.timestamp({
  41. format: 'YYYY-MM-DD HH:mm:ss:SSS',
  42. }),
  43. winston.format.metadata({
  44. fillExcept: ['message', 'level', 'timestamp', 'label', 'uid', 'rid'],
  45. }),
  46. winston.format.json(),
  47. winston.format.printf(
  48. (info) =>
  49. // eslint-disable-next-line prettier/prettier
  50. `${info.timestamp} [${info.level}] ${info.uid ? `[${info.uid}]` : ''} ${info.context || ''
  51. }: ${info.message}`,
  52. ),
  53. // nestWinstonModuleUtilities.format.nestLike('Meta-server', {
  54. // prettyPrint: false,
  55. // }),
  56. ),
  57. exitOnError: false,
  58. transports: [
  59. dateTransport,
  60. new winston.transports.Console(),
  61. // new winston.transports.File({
  62. // dirname: logDir, //path to where save loggin result
  63. // filename: 'combine.log', //name of file where will be saved logging result
  64. // level: 'debug',
  65. // }),
  66. // new winston.transports.File({
  67. // dirname: logDir, //path to where save loggin result
  68. // filename: 'combine.log', //name of file where will be saved logging result
  69. // level: 'log',
  70. // }),
  71. new winston.transports.File({
  72. dirname: logDir,
  73. filename: 'combine.log',
  74. level: 'error',
  75. }),
  76. new winston.transports.File({
  77. dirname: logDir,
  78. filename: 'combine.log',
  79. level: 'verbose',
  80. }),
  81. new winston.transports.File({
  82. dirname: logDir,
  83. filename: 'bootsrap.log',
  84. level: 'warn',
  85. }),
  86. new winston.transports.File({
  87. dirname: logDir,
  88. filename: 'error.log',
  89. level: 'error',
  90. }),
  91. ],
  92. };