//Loguix - Système de log simplifié //Concu par Raphael PICOT - Raphix //GITLAB : https://gitlab.com/raphixscrap/loguix const fs = require("fs") var date = new Date() // [Date Format] - Format de la date var gmonth = date.getMonth() var gday = date.getDate() var gHour = date.getHours() var gMinute = date.getMinutes() var gSecondes = date.getSeconds() if(date.getMonth() + 1 <= 9) { gmonth = "0" + (date.getMonth() + 1) } if(date.getDate() + 1 <= 9) { gday = "0" + date.getDate() } if(date.getHours() + 1 <= 9) { gHour = "0" + date.getHours() } if(date.getMinutes() + 1 <= 9) { gMinute = "0" + date.getMinutes() } if(date.getSeconds() + 1 <= 9) { gSecondes = "0" + date.getSeconds() } var currentDate = date.getFullYear() + "-" + gmonth + "-" + gday + "-" + gHour + "h" + "-" + gMinute + "m" + "-" + gSecondes + "s" var returnDate = currentDate // [Loguix Init Phase] - Settings for LogSystem var env_name = null var env_set = false if(!fs.existsSync("logs/")) { fs.mkdir("logs", (err) => { if(err) { console.log("[Loguix] - Error on initialization phase : #E : LOGS_DIR_ERROR") } }) } var logStream = fs.createWriteStream("logs/" + currentDate + ".log", { flags: 'a' }); var sys = { "name":"Loguix", "version":"1.0.0" } // [Loguix Start Phase] - Start Function - Check state logStream.write("[" + sys.name + "@" + sys.version + "] - [" + currentDate + "]" + "\n") logStream.write("Loguix by Raphix" + "\n") logStream.write("----------------------------------------------------------------" + "\n") // [Function] - Get Loguix Date Format module.exports.getLogFormatDate = () => { return returnDate } // [Function] - Environnement Settings module.exports.setName = (name) => { env_name = name env_set = true } // [Function] - Write into console with priority and write in log file module.exports.write = (level, msg) => { if(env_set == true) { if(level == "warn") { var message = "[" + currentDate + "] - [" + env_name + "]" + "["+ level.toUpperCase() + "] - " + msg + "\n"; var consoleMessage = "[" + currentDate + "] - [" + env_name + "]" + " - ["+ level.toUpperCase() + "] - " + msg logStream.write(message); console.warn(consoleMessage) } else if(level == "error") { var message = "[" + currentDate + "] - [" + env_name + "]" + "["+ level.toUpperCase() + "] - " + msg + "\n"; var consoleMessage = "[" + currentDate + "] - [" + env_name + "]" + " - ["+ level.toUpperCase() + "] - " + msg logStream.write(message); console.error(consoleMessage) } else if(level == "info") { var message = "[" + currentDate + "] - [" + env_name + "]" + "["+ level.toUpperCase() + "] - " + msg + "\n"; var consoleMessage = "[" + currentDate + "] - [" + env_name + "]" + " - ["+ level.toUpperCase() + "] - " + msg logStream.write(message); console.log(consoleMessage) } else if(level == "fatal") { var message = "[" + currentDate + "] - [" + env_name + "]" + "["+ level.toUpperCase() + "] - " + msg + "\n"; var consoleMessage = "[" + currentDate + "] - [" + env_name + "]" + " - ["+ level.toUpperCase() + "] - " + msg logStream.write(message); console.log(consoleMessage) } else { logStream.write("[" + currentDate + "] - " + "[Loguix] - Write - Level is not reconized\n") } } else { console.error("[Loguix] - Name is not configure."); } } // [Function] - Fatal Error - End programm when exit module.exports.stop = (endCode) => { process.on('uncaughtException', () => { logStream.end( "["+ endCode + "]" + " - [END OF LOGS] - [" + currentDate + ']') console.log("check") logStream.close() }); nonexistentFunc(); } process.on('uncaughtException', (err) => { logStream.write("[" + currentDate + "] - ["+ "FATAL" + "] - [" + env_name + "]" + " The programm has encountered an error ! Please Restart ! #E = " + err + "\n") logStream.end( "["+ "UNCAUGHT_EXCEPTION" + "]" + " - [END OF LOGS] - [" + currentDate + ']') logStream.close() }); process.on('beforeExit', () => { logStream.end( "["+ "NORMAL_END" + "]" + " - [END OF LOGS] - [" + currentDate + ']') logStream.close() }); //[Sandbox] - Test