import { utilities as nestWinstonModuleUtilities } from 'nest-winston'; import * as winston from 'winston'; import { join } from 'path'; import configuration from 'src/config/configuration'; import 'winston-daily-rotate-file'; let logDir: string; if (process.env.NODE_ENV === 'development') { logDir = join(__dirname, './../log'); console.log('测试服log', logDir); } if (process.env.NODE_ENV === 'production') { logDir = join(configuration().log.logFolder); console.log('正式服log', logDir); } console.log('logDir', logDir); const dateTransport = new winston.transports.DailyRotateFile({ level: 'verbose', dirname: logDir, filename: 'metaverse-%DATE%.log', datePattern: 'YYYY-MM-DD-HH', zippedArchive: true, maxSize: '20m', maxFiles: '14d', }); const levels = { levels: { error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6, }, }; export const LoggerConfig = { levels: levels.levels, format: winston.format.combine( winston.format.ms(), winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:SSS', }), winston.format.metadata({ fillExcept: ['message', 'level', 'timestamp', 'label', 'uid', 'rid'], }), winston.format.json(), winston.format.printf( (info) => // eslint-disable-next-line prettier/prettier `${info.timestamp} [${info.level}] ${info.uid ? `[${info.uid}]` : ''} ${info.context || '' }: ${info.message}`, ), // nestWinstonModuleUtilities.format.nestLike('Meta-server', { // prettyPrint: false, // }), ), exitOnError: false, transports: [ dateTransport, new winston.transports.Console(), // new winston.transports.File({ // dirname: logDir, //path to where save loggin result // filename: 'combine.log', //name of file where will be saved logging result // level: 'debug', // }), // new winston.transports.File({ // dirname: logDir, //path to where save loggin result // filename: 'combine.log', //name of file where will be saved logging result // level: 'log', // }), new winston.transports.File({ dirname: logDir, filename: 'combine.log', level: 'error', }), new winston.transports.File({ dirname: logDir, filename: 'combine.log', level: 'verbose', }), new winston.transports.File({ dirname: logDir, filename: 'bootsrap.log', level: 'warn', }), new winston.transports.File({ dirname: logDir, filename: 'error.log', level: 'error', }), ], };