一个nodejs里日志文件的实现

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券