首先使用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+"");}
最后写入的本地日志文件如下图: