首先使用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");
}
最后写入的本地日志文件如下图:
学完还想练练?点这里。