首先使用nodejs标準的檔案系統module fs
const fs = require('fs');
日志一般都要打時間戳,是以導入時間戳工具:
const dateTime = require('node-datetime');
根據不同的日志級别寫入本文log檔案:
var log = {
setName:function(message) {
logName = message;
},
all:function(message){
console.log(getDate() + ' [ ALL - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ ALL - '+prepareLogName()+'] '+ message);
},
trace:function(message){
console.log(getDate() + ' [ TRACE - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ TRACE - '+prepareLogName()+'] '+ message);
},
debug:function(message){
console.log(getDate() + ' [ DEBUG - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ DEBUG - '+prepareLogName()+'] '+ message);
},
info:function(message){
debugger;
console.log(getDate() + ' [ INFO - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ INFO - '+prepareLogName()+'] '+ message);
},
warn:function(message){
console.log(getDate() + ' [ WARN - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ WARN - '+prepareLogName()+'] '+ message);
},
error:function(message){
console.log(getDate() + ' [ ERROR - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ ERROR - '+prepareLogName()+'] '+ message);
},
fatal:function(message){
console.log(getDate() + ' [ FATAL - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ FATAL - '+prepareLogName()+'] '+ message);
},
off:function(message){
console.log(getDate() + ' [ OFF - '+prepareLogName()+'] '+ message);
writeMessage(getDate() + ' [ OFF - '+prepareLogName()+'] '+ message);
}
}
writeMessage方法的實作:調用fs同步寫入本地日志檔案:
function writeMessage(message) {
pwd = process.cwd();
fs.appendFileSync(pwd+'/logs/log', message+"\n");
}