一个nodejs里日志文件的实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/i042416/article/details/87776624

首先使用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");
}

最后写入的本地日志文件如下图:

在这里插入图片描述

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

猜你喜欢

转载自blog.csdn.net/i042416/article/details/87776624