引入依賴
npm install log4js
新建配置文件logUtil.js
const log4js = require('log4js');// 日志配置
log4js.configure({appenders: {// 控制臺輸出consoleAppender: { type: 'console' },// 文件輸出fileAppender: {type: 'dateFile',filename: './logs/default', //日志文件的存儲名alwaysIncludePattern: true, //(可選,默認false)將模式包含在當前日志文件的名稱以及備份中pattern: "yyyy-MM-dd.log",encoding: 'utf-8', //(可選,默認為utf-8)文件數據的存儲編碼maxLogSize: 1024 * 1024 * 1 // 文件最大存儲空間}},categories: {// 設置默認所有日志都記錄default: { appenders: ['consoleAppender', 'fileAppender'], level: 'all' } }
});module.exports = log4js
在服務文件index.js中設置全局引用
const log4js = require('../utils/logUtil')// 引入log4js配置,初始化全局對象
const logger = log4js.getLogger('default'); // 使用默認類別
global.logger = logger // 賦值給全局對象【logger】,也可以直接替換【console】
// global.console = logger// 捕獲未抓捕的異常,例如進程突然掛掉時的報錯
process.on('uncaughtException', function (err) {logger.error(err.stack) // 保存錯誤的調用棧
});
?然后就可以在所有js文件中通過使用如下方法打印日志了,打印的日志會同時輸出在控制臺及保存到本地文件夾中
// 不同類型的輸出
logger.log('log')
logger.info('info')
logger.error('error')
logger.debug('debug')
logger.warn('warn')
logger.trace('trace')
logger.fatal('fatal')
logger.mark('mark')
// object類型的輸出,可以使用【JSON.stringify(obj, null, 2)】的格式來輸出
logger.error('------------------login fail-------------------')
logger.error('result : \n' + JSON.stringify(obj, null, 2))
logger.error('message : ' + message)
logger.error('time : ' + nowTime)
logger.error('-----------------------------------------------')
?效果如下: