且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

一个nodejs里日志文件的实现

更新时间:2022-09-13 11:50:06

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

一个nodejs里日志文件的实现