const log4js = require('log4js') const path= require('path') let developmentLogConfig={} if (process.env.NODE_ENV !== 'production'){ developmentLogConfig={ STDOUT: { type: 'stdout' } } } const logAccessFile = path.join(__dirname, './logs/access.log') const logErrorFile=path.join(__dirname,'./logs/errors.log') log4js.configure({ /** * 如果生产环境在cluster模式下,pm2需要设置为true, 否则日志不生效 * pm2: process.env.NODE_ENV === 'production' */ appenders: { ...developmentLogConfig, FILE_ALL: { type: 'dateFile', // log4js 会按照日期分日志,一天一个文件,每过一天都会把前一天的 all.log 重命名为 all.2021-06-03.log filename: logAccessFile, backups: 10, // 日志最多保留10个 maxLogSize: 10485760, // 文件最大值10M daysToKeep: 10, // 最多保留10天的日志,如果为0则永久保存 keepFileExt: true // 是否保持日志文件后缀名 }, FILE_ERROR: { type: 'dateFile', filename: logErrorFile, daysToKeep: 30, keepFileExt: true } }, categories: { default: { appenders: process.env.NODE_ENV !== 'production' ? ['STDOUT', 'FILE_ALL'] : ['FILE_ALL'], level: 'debug' }, error: { appenders: ['FILE_ERROR'], level: 'error' } } }) const defaultLogger = log4js.getLogger() const errorLogger = log4js.getLogger('error') // 导出对应的log module.exports = { defaultLogger, errorLogger }