Major logging changes

This commit is contained in:
YourFriendlyNeighborhoodDealer 2019-03-24 10:06:28 +01:00
parent fbf5a99cfd
commit fde527aaeb
5 changed files with 83 additions and 78 deletions

View file

@ -221,7 +221,7 @@ class QuestionDB {
function Process(d, file) { function Process(d, file) {
try { try {
logger.Log("[PCES]:\tFile: " + file); logger.Log("File: " + file);
if (d.data.split("\n").length > 1) { if (d.data.split("\n").length > 1) {
var oldFile = utils.ReadFile(file); var oldFile = utils.ReadFile(file);
var newFile = oldFile + "\n"; var newFile = oldFile + "\n";
@ -234,26 +234,26 @@ function Process(d, file) {
var oldRes = CheckData(oldFile); var oldRes = CheckData(oldFile);
if (oldRes.count > 0) if (oldRes.count > 0)
logger.Log("[NLOD]:\t\told public result: " + oldRes.count, logger.GetColor("blue")); logger.Log("\t\told public result: " + oldRes.count, logger.GetColor("blue"));
else else
logger.Log("[NLOD]:\t\told public NLOD error, " + oldRes.log, logger.GetColor("redbg"), true); logger.Log("\t\told public NLOD error, " + oldRes.log, logger.GetColor("redbg"), true);
if (newRes.count > 0) if (newRes.count > 0)
logger.Log("[NLOD]:\t\tnew file result: " + newRes.count, logger.GetColor("blue")); logger.Log("\t\tnew file result: " + newRes.count, logger.GetColor("blue"));
else else
logger.Log("[NLOD]:\t\tnew file NLOD error, " + newRes.log, logger.GetColor("redbg"), true); logger.Log("\t\tnew file NLOD error, " + newRes.log, logger.GetColor("redbg"), true);
utils.WriteFile(newFile, file); utils.WriteFile(newFile, file);
logger.Log("[NLOD]:\t\tNew data written to: " + file); logger.Log("\t\tNew data written to: " + file);
return newRes.count - oldRes.count; return newRes.count - oldRes.count;
} else } else
logger.Log("[PCES]:\t\tNo new data"); logger.Log("\t\tNo new data");
} catch (e) { } catch (e) {
Beep(); Beep();
logger.Log("[ERR ]:\tError at processing data! File: " + file, logger.GetColor("redbg")); logger.Log("\tError at processing data! File: " + file, logger.GetColor("redbg"));
logger.Log(e.toString(), logger.GetColor("redbg")); logger.Log(e.toString(), logger.GetColor("redbg"));
} }
return -1; return -1;
@ -262,7 +262,7 @@ function Process(d, file) {
function ProcessIncomingRequest(data) { function ProcessIncomingRequest(data) {
if (data == undefined) { if (data == undefined) {
logger.Log("[PCES]:\tRecieved data is undefined!", logger.GetColor("redbg")); logger.Log("\tRecieved data is undefined!", logger.GetColor("redbg"));
return; return;
} }
@ -291,7 +291,7 @@ function ProcessIncomingRequest(data) {
data.AddQuestion(d.subj, q); data.AddQuestion(d.subj, q);
} }
logger.Log("[PCES]:\t" + d.subj); logger.Log("\t" + d.subj);
var msg = "All / new count: " + allQuestions.length + " / " + questions.length; var msg = "All / new count: " + allQuestions.length + " / " + questions.length;
if (d.version != undefined) if (d.version != undefined)
msg += ". Version: " + d.version; msg += ". Version: " + d.version;
@ -310,10 +310,10 @@ function ProcessIncomingRequest(data) {
msg += " - Data file written!"; msg += " - Data file written!";
var color = logger.GetColor("blue"); var color = logger.GetColor("blue");
} }
logger.Log("[PCES]:\t" + msg, color); logger.Log("\t" + msg, color);
} catch (e) { } catch (e) {
logger.Log("[PCES]: Couldnt parse JSON data, trying old format...", logger.GetColor("redbg")); logger.Log("Couldnt parse JSON data, trying old format...", logger.GetColor("redbg"));
var d = SetupData(data); var d = SetupData(data);
var qcount = -1; var qcount = -1;
try { try {
@ -325,7 +325,7 @@ function ProcessIncomingRequest(data) {
qcount = count; qcount = count;
} catch (e) {console.log("Error :c"); console.log(e);} } catch (e) {console.log("Error :c"); console.log(e);}
logger.Log("[PCES]:\tProcessing data: " + d.subj + " (" + d.type + "), count: " + qcount, logger.GetColor("green")); logger.Log("\tProcessing data: " + d.subj + " (" + d.type + "), count: " + qcount, logger.GetColor("green"));
if (d.subj == undefined){ if (d.subj == undefined){
logger.Log(JSON.stringify(d), logger.GetColor("red")); logger.Log(JSON.stringify(d), logger.GetColor("red"));
return; return;
@ -346,14 +346,14 @@ function PrintNewCount(d, newItems, file) {
for (var i = 0; i < splitted.length; i++) for (var i = 0; i < splitted.length; i++)
if (splitted[i].startsWith("?")) if (splitted[i].startsWith("?"))
count++; count++;
logger.Log("[NEW ]:\t" + file + " All / New: " + count + " / " + newItems, logger.GetColor("cyan")); logger.Log("\t" + file + " All / New: " + count + " / " + newItems, logger.GetColor("cyan"));
} }
} }
function SetupData(data) { function SetupData(data) {
var pdata = data.split("<#>"); var pdata = data.split("<#>");
if (pdata.length <= 0){ if (pdata.length <= 0){
logger.Log("[SUPD]: Data length is zero !", logger.GetColor("redbg")); logger.Log("Data length is zero !", logger.GetColor("redbg"));
throw "No data recieved!"; throw "No data recieved!";
} }
@ -363,7 +363,7 @@ function SetupData(data) {
if (td.length == 2) if (td.length == 2)
d[td[0]] = td[1]; d[td[0]] = td[1];
else { else {
logger.Log("[SUPD]: Invalid parameter!", logger.GetColor("redbg")); logger.Log("Invalid parameter!", logger.GetColor("redbg"));
throw "Invalid parameter recieved!"; throw "Invalid parameter recieved!";
} }
} }
@ -375,7 +375,7 @@ function CheckData(data) {
var presult = NLoad(data); var presult = NLoad(data);
return presult; return presult;
} catch (e) { } catch (e) {
logger.Log("[NLOD]: NLOD error, " + e.toString(), logger.GetColor("redbg"), true); logger.Log("Load error, " + e.toString(), logger.GetColor("redbg"), true);
return { return {
count: -1, count: -1,
log: [e.toString()] log: [e.toString()]
@ -500,7 +500,7 @@ function LoadJSON(resource) {
} }
return r; return r;
} catch (e) { } catch (e) {
logger.Log("[LOAD]:Error loading sutff", logger.GetColor("redbg"), true); logger.Log("Error loading sutff", logger.GetColor("redbg"), true);
} }
} }

View file

@ -21,13 +21,17 @@
module.exports = { module.exports = {
GetDateString: GetDateString, GetDateString: GetDateString,
Log: Log, Log: Log,
GetColor: GetColor GetColor: GetColor,
LogReq: LogReq
}; };
const DELIM = "|";
var utils = require('./utils.js'); var utils = require('./utils.js');
const nlogFile = "stats/nlogs"; const nlogFile = "stats/nlogs";
const varLogFile = "/var/log/qminingNLog";
const logFile = "/nlogs/nlogs"; const logFile = "/nlogs/nlogs";
const locLogFile = "stats/logs";
const allLogFile = "/nlogs/log";
function GetDateString() { function GetDateString() {
var m = new Date(); var m = new Date();
@ -41,15 +45,45 @@ function GetDateString() {
function Log(s, c, b) { function Log(s, c, b) {
if (c != undefined) if (c != undefined)
console.log(c, GetDateString() + "> " + s); console.log(c, GetDateString() + DELIM + s);
else else
console.log(GetDateString() + "> " + s); console.log(GetDateString() + DELIM + s);
if (b) if (b)
utils.Beep(); utils.Beep();
utils.AppendToFile(GetDateString() + "> " + s, nlogFile); utils.AppendToFile(GetDateString() + DELIM + s, nlogFile);
utils.AppendToFile(GetDateString() + "> " + s, logFile); utils.AppendToFile(GetDateString() + DELIM + s, logFile);
}
function LogReq(req, toFile, sc) {
try {
var ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress;
var logEntry = ip + DELIM + req.headers['user-agent'] +
DELIM + req.method + DELIM;
logEntry += req.url;
if (sc != undefined && sc == 404)
logEntry += DELIM + sc;
var color = GetColor("green");
if (req.url.toLowerCase().includes("isadding"))
color = GetColor("yellow");
if (!toFile) {
Log(logEntry, color);
} else {
var defLogs = GetDateString() + DELIM + logEntry;
var extraLogs = "\n\t" + JSON.stringify(req.headers) + "\n\t" + JSON.stringify(req.body) + "\n";
utils.AppendToFile(defLogs, locLogFile);
utils.AppendToFile(defLogs, allLogFile);
}
} catch (e) {
console.log(e);
Log("Error at logging lol", GetColor("redbg"), true);
}
} }
function GetColor(c) { function GetColor(c) {

View file

@ -44,7 +44,6 @@ const simpOutFile = "public/simplified";
const inputFile = "stats/inputs"; const inputFile = "stats/inputs";
const msgFile = "stats/msgs"; const msgFile = "stats/msgs";
const logFile = "stats/logs"; const logFile = "stats/logs";
const allLogFile = "/nlogs/log"; const allLogFile = "/nlogs/log";
// https://certbot.eff.org/ // https://certbot.eff.org/
@ -77,7 +76,7 @@ const httpsPort = 8443;
app.set('view engine', 'ejs'); app.set('view engine', 'ejs');
app.use(function(req, res, next) { app.use(function(req, res, next) {
res.on('finish', function() { res.on('finish', function() {
Log(req, true, res.statusCode); logger.LogReq(req, true, res.statusCode);
if (res.statusCode != 404) if (res.statusCode != 404)
stat.LogStat(req.url); stat.LogStat(req.url);
}); });
@ -114,7 +113,7 @@ app.get('/sio', function(req, res) {
app.get('/manual', function(req, res) { app.get('/manual', function(req, res) {
res.write(utils.ReadFile(manFile)); res.write(utils.ReadFile(manFile));
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
app.get('/public', function(req, res) { app.get('/public', function(req, res) {
@ -147,12 +146,12 @@ app.get('/legacy', function(req, res) {
siteurl: siteUrl siteurl: siteUrl
}); });
Log(req); logger.LogReq(req);
}); });
app.post('/postfeedback', function(req, res) { app.post('/postfeedback', function(req, res) {
res.redirect('back'); res.redirect('back');
logger.Log("[UMSG]: New feedback message", logger.GetColor("bluebg"), true); logger.Log("New feedback message", logger.GetColor("bluebg"), true);
utils.AppendToFile("\n\n" + logger.GetDateString() + ": " + req.body.message_field, msgFile); utils.AppendToFile("\n\n" + logger.GetDateString() + ": " + req.body.message_field, msgFile);
}); });
@ -166,7 +165,7 @@ app.get('/postfeedback', function(req, res) {
app.post('/isAdding', function(req, res) { app.post('/isAdding', function(req, res) {
res.end('OK'); res.end('OK');
Log(req); logger.LogReq(req);
actions.ProcessIncomingRequest(req.body.datatoadd); actions.ProcessIncomingRequest(req.body.datatoadd);
utils.WriteBackup(); utils.WriteBackup();
}); });
@ -174,19 +173,19 @@ app.post('/isAdding', function(req, res) {
app.get('/lred', function(req, res) { app.get('/lred', function(req, res) {
res.redirect("/legacy"); res.redirect("/legacy");
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
app.get('/menuClick', function(req, res) { app.get('/menuClick', function(req, res) {
res.redirect("/"); res.redirect("/");
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
app.get('/irc', function(req, res) { app.get('/irc', function(req, res) {
res.redirect(ircURL); res.redirect(ircURL);
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
// all questions readable // all questions readable
@ -197,32 +196,32 @@ app.get('/allqr', function(req, res) {
res.render('allqr', { res.render('allqr', {
d: d.toString().split('\n') d: d.toString().split('\n')
}); });
Log(req); logger.LogReq(req);
}); });
app.get('/greasy', function(req, res) { app.get('/greasy', function(req, res) {
res.redirect("https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help"); res.redirect("https://greasyfork.org/en/scripts/38999-moodle-elearning-kmooc-test-help");
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
app.get('/scriptgit', function(req, res) { app.get('/scriptgit', function(req, res) {
res.redirect("https://gitlab.com/YourFriendlyNeighborhoodDealer/moodle-test-userscript"); res.redirect("https://gitlab.com/YourFriendlyNeighborhoodDealer/moodle-test-userscript");
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
app.get('/servergit', function(req, res) { app.get('/servergit', function(req, res) {
res.redirect("https://gitlab.com/YourFriendlyNeighborhoodDealer/question-node-server"); res.redirect("https://gitlab.com/YourFriendlyNeighborhoodDealer/question-node-server");
res.end(); res.end();
Log(req); logger.LogReq(req);
}); });
function UploadFile(req, res, path, next) { function UploadFile(req, res, path, next) {
var fstream; var fstream;
req.pipe(req.busboy); req.pipe(req.busboy);
req.busboy.on('file', function(fieldname, file, filename) { req.busboy.on('file', function(fieldname, file, filename) {
logger.Log("[UPL]: Uploading: " + filename, logger.GetColor("blue")); logger.Log("Uploading: " + filename, logger.GetColor("blue"));
utils.CreatePath(path, true); utils.CreatePath(path, true);
let d = new Date(); let d = new Date();
@ -233,7 +232,7 @@ function UploadFile(req, res, path, next) {
fstream = fs.createWriteStream(path + "/" + fn); fstream = fs.createWriteStream(path + "/" + fn);
file.pipe(fstream); file.pipe(fstream);
fstream.on('close', function() { fstream.on('close', function() {
logger.Log("[UPL]: Upload Finished of " + path + "/" + fn, logger.GetColor("blue")); logger.Log("Upload Finished of " + path + "/" + fn, logger.GetColor("blue"));
next(fn); next(fn);
}); });
fstream.on('error', function(err) { fstream.on('error', function(err) {
@ -253,7 +252,7 @@ app.route('/badtestsender').post(function(req, res, next) {
UploadFile(req, res, recivedFiles, (fn) => { UploadFile(req, res, recivedFiles, (fn) => {
res.render("uploaded"); res.render("uploaded");
}); });
Log(req); logger.LogReq(req);
}); });
app.get('*', function(req, res) { app.get('*', function(req, res) {
@ -282,32 +281,4 @@ if (startHTTPS && certsLoaded) {
logger.Log("Cert files does not exists, starting http only!", logger.GetColor("redbg")); logger.Log("Cert files does not exists, starting http only!", logger.GetColor("redbg"));
} }
logger.Log(msg, logger.GetColor("yellow")); logger.Log(msg, logger.GetColor("yellow"));
logger.Log("[STRT]: Node version: " + process.version); logger.Log("Node version: " + process.version);
function Log(req, toFile, sc) {
try {
var ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress;
var logEntry = "[RSND]: " + ip + ", " + req.headers['user-agent'] +
" " + req.method + " ";
if (sc != undefined && sc == 404)
logEntry += sc + " ";
logEntry += req.url;
var color = logger.GetColor("green");
if (req.url.toLowerCase().includes("isadding"))
color = logger.GetColor("yellow");
if (!toFile) {
logger.Log(logEntry, color);
} else {
var defLogs = logger.GetDateString() + ": " + logEntry;
var extraLogs = "\n\t" + JSON.stringify(req.headers) + "\n\t" + JSON.stringify(req
.body) + "\n";
utils.AppendToFile(defLogs, logFile);
utils.AppendToFile(defLogs, allLogFile);
}
} catch (e) {
logger.Log("Error at logging lol", logger.GetColor("redbg"), true);
}
}

12
stat.js
View file

@ -39,7 +39,7 @@ function Load() {
var prevData = utils.ReadFile(statFile); var prevData = utils.ReadFile(statFile);
data = JSON.parse(prevData); data = JSON.parse(prevData);
} catch (e) { } catch (e) {
logger.Log("[STAT]: Error at loading logs! (@ first run its normal)", logger.GetColor("redbg")); logger.Log("Error at loading logs! (@ first run its normal)", logger.GetColor("redbg"));
console.log(e); console.log(e);
} }
@ -47,7 +47,7 @@ function Load() {
var prevVData = utils.ReadFile(vStatFile); var prevVData = utils.ReadFile(vStatFile);
vData = JSON.parse(prevVData); vData = JSON.parse(prevVData);
} catch (e) { } catch (e) {
logger.Log("[STAT]: Error at loading visit logs! (@ first run its normal)", logger.GetColor("redbg")); logger.Log("Error at loading visit logs! (@ first run its normal)", logger.GetColor("redbg"));
console.log(e); console.log(e);
} }
} }
@ -95,16 +95,16 @@ function Save() {
if (writes == writeInterval) { if (writes == writeInterval) {
try { try {
utils.WriteFile(JSON.stringify(data), statFile); utils.WriteFile(JSON.stringify(data), statFile);
// logger.Log("[STAT] Stats wrote."); // logger.Log("Stats wrote.");
} catch (e) { } catch (e) {
logger.Log("[STAT]: Error at writing logs!", logger.GetColor("redbg")); logger.Log("Error at writing logs!", logger.GetColor("redbg"));
console.log(e); console.log(e);
} }
try { try {
utils.WriteFile(JSON.stringify(vData), vStatFile); utils.WriteFile(JSON.stringify(vData), vStatFile);
// logger.Log("[STAT] Stats wrote."); // logger.Log("Stats wrote.");
} catch (e) { } catch (e) {
logger.Log("[STAT]: Error at writing visit logs!", logger.GetColor("redbg")); logger.Log("Error at writing visit logs!", logger.GetColor("redbg"));
console.log(e); console.log(e);
} }
writes = 0; writes = 0;

View file

@ -59,7 +59,7 @@ function WriteFileAsync(content, path) {
CreatePath(path); CreatePath(path);
fs.writeFile(path, content, function(err) { fs.writeFile(path, content, function(err) {
if (err) { if (err) {
logger.Log("[ERR ]: Error writing file: " + path + " (sync)", logger.GetColor("redbg")); logger.Log("Error writing file: " + path + " (sync)", logger.GetColor("redbg"));
} }
}); });
} }
@ -68,7 +68,7 @@ function AppendToFile(data, file) {
CreatePath(file); CreatePath(file);
fs.appendFile(file, "\n" + data, function(err) { fs.appendFile(file, "\n" + data, function(err) {
if (err) if (err)
logger.Log("[ERR ]: Error writing log file: " + file + " (sync)", logger.GetColor("redbg")); logger.Log("Error writing log file: " + file + " (sync)", logger.GetColor("redbg"));
}); });
} }
@ -84,7 +84,7 @@ function WriteBackup() {
try { try {
WriteFileAsync(ReadFile(dataFile), 'public/backs/data_' + new Date().toString()); WriteFileAsync(ReadFile(dataFile), 'public/backs/data_' + new Date().toString());
} catch (e) { } catch (e) {
logger.Log("[ERR ]: Error backing up data json file!", logger.GetColor("redbg")); logger.Log("Error backing up data json file!", logger.GetColor("redbg"));
console.log(e); console.log(e);
} }
} }