57 lines
1.6 KiB
JavaScript
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
|
|
} |