Skip to content

Instantly share code, notes, and snippets.

@pawndev
Last active September 3, 2015 13:02
Show Gist options
  • Save pawndev/2f838581307f371406e3 to your computer and use it in GitHub Desktop.
Save pawndev/2f838581307f371406e3 to your computer and use it in GitHub Desktop.
Very simple logger in nodejs
var fs = require('fs');
var Logger = {
file: null,
define: function (externFile) {
fs.exists(externFile, function (exist) {
if (!exist) {
fs.writeFile(externFile, function (err, data) {
if (err) throw err;
});
}
});
this.file = externFile;
},
showFile: function () {
return this.file;
},
getDate: function () {
var now = new Date();
var annee = now.getFullYear();
var mois = now.getMonth() + 1;
var jour = now.getDate();
var heure = now.getHours();
var minute = now.getMinutes();
var seconde = now.getSeconds();
return "[" + jour + "/" + mois + "/" + annee + " " + heure + ":"+ minute + ":" + seconde + "]";
},
write: function (file, type, message) { //deprecated
var date = this.getDate();
var string = "[" + type + "]";
string += date;
string += " " + message + "\n";
var log = fs.createWriteStream(file, {'flags': 'a'});
log.end(string);
},
success: function (message) {
var date = this.getDate();
var string = "[success]" + date + " " + message + "\n";
var log = fs.createWriteStream(this.showFile(), {'flags': 'a'});
log.end(string);
},
error: function (message) {
var date = this.getDate();
var string = "[error]" + date + " " + message + "\n";
var log = fs.createWriteStream(this.showFile(), {'flags': 'a'});
log.end(string);
},
info: function (message) {
var date = this.getDate();
var string = "[info]" + date + " " + message + "\n";
var log = fs.createWriteStream(this.showFile(), {'flags': 'a'});
log.end(string);
},
clean: function () {
fs.truncate(this.showFile(), '', console.log("File : " + this.showFile() + " has been clean"));
},
fetchContent: function (type) {
type = type || false;
var retour;
fs.readFile(this.showFile(), 'utf-8', function (err, data) {
if (!type) {
retour = data.split('\n');
} else {
retour = [];
var reg = /^[.+]$/;
if (type == "success") {
reg = /^\[success.*$/;
} else if (type == "error") {
reg = /^\[error.*$/;
} else if (type == "info") {
reg = /^\[info.*$/;
}
for (var i = 0; i < data.split('\n').length; i++) {
if (reg.test(data.split('\n')[i])) {
retour.push(data.split('\n')[i]);
}
}
}
return retour;
});
}
};
module.exports = Logger;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment