Newer
Older
Card9-Skyworks / software / logger.js
@王邈 王邈 on 11 Feb 2015 631 bytes 完成与门禁的通信
var fs = require('fs');
var config = require('./config');
var logFileReady = false;
var logStream = fs.createWriteStream(config.logFile, {
	flags: 'a',
	encoding: null,
}).on('open', function(){
	logFileReady = true;
	toWriteBeforeOpen.forEach(function(e){
		writeLog(e);
	});
	toWriteBeforeOpen = [];
});

var toWriteBeforeOpen = [];

var writeLog = module.exports = function(jsonObj, callback){
	if(logFileReady){
		logStream.write(JSON.stringify({time: Date.now(), msg: jsonObj}));
		logStream.write(", \n");
	}else{
		toWriteBeforeOpen.push(jsonObj);
	}
	if(callback !== undefined){
		logStream.once('drain', callback);
	}
};