xy-crm/log.js

57 lines
1.6 KiB
JavaScript

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
}