mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Stat.js merge with logger.js, added ids.js
This commit is contained in:
parent
892bfff54e
commit
5dfcb7d8ae
4 changed files with 112 additions and 35 deletions
|
@ -25,13 +25,11 @@ const httpsport = 8443
|
||||||
const express = require('express')
|
const express = require('express')
|
||||||
const vhost = require('vhost')
|
const vhost = require('vhost')
|
||||||
const logger = require('./utils/logger.js')
|
const logger = require('./utils/logger.js')
|
||||||
logger.setNoLogReadInterval()
|
logger.Load()
|
||||||
const utils = require('./utils/utils.js')
|
const utils = require('./utils/utils.js')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const http = require('http')
|
const http = require('http')
|
||||||
const https = require('https')
|
const https = require('https')
|
||||||
const stat = require('./utils/stat.js')
|
|
||||||
stat.Load()
|
|
||||||
|
|
||||||
const loggableKeywords = [
|
const loggableKeywords = [
|
||||||
'user.js'
|
'user.js'
|
||||||
|
@ -73,12 +71,11 @@ app.use(function (req, res, next) {
|
||||||
return req.url.includes(x)
|
return req.url.includes(x)
|
||||||
})
|
})
|
||||||
if (toLog) { logger.LogReq(req) }
|
if (toLog) { logger.LogReq(req) }
|
||||||
if (res.statusCode !== 404) { stat.LogStat(req.url) }
|
if (res.statusCode !== 404) { logger.LogStat(req.url) }
|
||||||
})
|
})
|
||||||
next()
|
next()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
Object.keys(modules).forEach(function (k, i) {
|
Object.keys(modules).forEach(function (k, i) {
|
||||||
let x = modules[k]
|
let x = modules[k]
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -30,6 +30,7 @@ const motdFile = './public/motd'
|
||||||
const qaFile = './public/qa'
|
const qaFile = './public/qa'
|
||||||
|
|
||||||
var logger = require('../utils/logger.js')
|
var logger = require('../utils/logger.js')
|
||||||
|
const idStats = require('../utils/ids.js')
|
||||||
var utils = require('../utils/utils.js')
|
var utils = require('../utils/utils.js')
|
||||||
const classes = require('./question-classes/classes.js')
|
const classes = require('./question-classes/classes.js')
|
||||||
|
|
||||||
|
@ -87,11 +88,17 @@ function ProcessIncomingRequest (data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Log('\t' + d.subj)
|
let subjRow = '\t' + d.subj
|
||||||
|
if (d.id) {
|
||||||
|
subjRow += ' ( CID: ' + logger.logHashed(d.id) + ')'
|
||||||
|
idStats.LogId(d.id)
|
||||||
|
}
|
||||||
|
logger.Log(subjRow)
|
||||||
if (d.version !== undefined) { msg += '. Version: ' + d.version }
|
if (d.version !== undefined) { msg += '. Version: ' + d.version }
|
||||||
|
|
||||||
logger.Log('\t' + msg, color)
|
logger.Log('\t' + msg, color)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
logger.Log('Couldnt parse JSON data', logger.GetColor('redbg'))
|
logger.Log('Couldnt parse JSON data', logger.GetColor('redbg'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,48 +19,46 @@
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
LogStat: LogStat,
|
LogId: LogId,
|
||||||
Load: Load
|
Load: Load
|
||||||
}
|
}
|
||||||
|
|
||||||
var utils = require('../utils/utils.js')
|
const utils = require('../utils/utils.js')
|
||||||
var logger = require('../utils/logger.js')
|
const logger = require('../utils/logger.js')
|
||||||
|
const idStatFile = 'stats/idstats'
|
||||||
|
const idVStatFile = 'stats/idvstats'
|
||||||
|
|
||||||
const statFile = 'stats/stats'
|
|
||||||
const vStatFile = 'stats/vstats'
|
|
||||||
const writeInterval = 10
|
const writeInterval = 10
|
||||||
|
|
||||||
var data = {}
|
let data = {}
|
||||||
var vData = {}
|
let vData = {}
|
||||||
var writes = 0
|
let writes = 0
|
||||||
|
|
||||||
function Load () {
|
function Load () {
|
||||||
try {
|
try {
|
||||||
var prevData = utils.ReadFile(statFile)
|
var prevData = utils.ReadFile(idStatFile)
|
||||||
data = JSON.parse(prevData)
|
data = JSON.parse(prevData)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.Log('Error at loading logs! (@ first run its normal)', logger.GetColor('redbg'))
|
logger.Log('Error at loading id logs! (@ first run its normal)', logger.GetColor('redbg'))
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var prevVData = utils.ReadFile(vStatFile)
|
var prevVData = utils.ReadFile(idVStatFile)
|
||||||
vData = JSON.parse(prevVData)
|
vData = JSON.parse(prevVData)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.Log('Error at loading visit logs! (@ first run its normal)', logger.GetColor('redbg'))
|
logger.Log('Error at loading id logs! (@ first run its normal)', logger.GetColor('redbg'))
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function LogStat (url) {
|
function LogId (id) {
|
||||||
url = url.split('?')[0]
|
Inc(id)
|
||||||
Inc(url)
|
AddVisitStat(id)
|
||||||
AddVisitStat(url)
|
|
||||||
Save()
|
Save()
|
||||||
}
|
}
|
||||||
|
|
||||||
function Inc (value) {
|
function Inc (value) {
|
||||||
if (value.startsWith('/?')) { value = '/' }
|
|
||||||
if (data[value] === undefined) { data[value] = 0 }
|
if (data[value] === undefined) { data[value] = 0 }
|
||||||
data[value]++
|
data[value]++
|
||||||
}
|
}
|
||||||
|
@ -77,15 +75,15 @@ function Save () {
|
||||||
writes++
|
writes++
|
||||||
if (writes === writeInterval) {
|
if (writes === writeInterval) {
|
||||||
try {
|
try {
|
||||||
utils.WriteFile(JSON.stringify(data), statFile)
|
utils.WriteFile(JSON.stringify(data), idStatFile)
|
||||||
// logger.Log("Stats wrote.");
|
// Log("Stats wrote.");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.Log('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), idVStatFile)
|
||||||
// logger.Log("Stats wrote.");
|
// Log("Stats wrote.");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.Log('Error at writing visit logs!', logger.GetColor('redbg'))
|
logger.Log('Error at writing visit logs!', logger.GetColor('redbg'))
|
||||||
console.log(e)
|
console.log(e)
|
|
@ -23,7 +23,9 @@ module.exports = {
|
||||||
Log: Log,
|
Log: Log,
|
||||||
GetColor: GetColor,
|
GetColor: GetColor,
|
||||||
LogReq: LogReq,
|
LogReq: LogReq,
|
||||||
setNoLogReadInterval: setNoLogReadInterval
|
LogStat: LogStat,
|
||||||
|
Load: Load,
|
||||||
|
logHashed: logHashed
|
||||||
}
|
}
|
||||||
|
|
||||||
const DELIM = C('green') + '|' + C()
|
const DELIM = C('green') + '|' + C()
|
||||||
|
@ -32,6 +34,14 @@ const utils = require('../utils/utils.js')
|
||||||
const locLogFile = './stats/logs'
|
const locLogFile = './stats/logs'
|
||||||
const logFile = '/nlogs/nlogs'
|
const logFile = '/nlogs/nlogs'
|
||||||
const allLogFile = '/nlogs/log'
|
const allLogFile = '/nlogs/log'
|
||||||
|
const statFile = 'stats/stats'
|
||||||
|
const vStatFile = 'stats/vstats'
|
||||||
|
|
||||||
|
const writeInterval = 10
|
||||||
|
|
||||||
|
let data = {}
|
||||||
|
let vData = {}
|
||||||
|
let writes = 0
|
||||||
|
|
||||||
const colors = [
|
const colors = [
|
||||||
'green',
|
'green',
|
||||||
|
@ -44,13 +54,6 @@ const colors = [
|
||||||
|
|
||||||
let noLogips = []
|
let noLogips = []
|
||||||
|
|
||||||
function setNoLogReadInterval () {
|
|
||||||
noLogips = utils.ReadFile('./nolog').split('\n')
|
|
||||||
setInterval(() => {
|
|
||||||
noLogips = utils.ReadFile('./nolog').split('\n')
|
|
||||||
}, 1000 * 60 * 30)
|
|
||||||
}
|
|
||||||
|
|
||||||
function GetDateString () {
|
function GetDateString () {
|
||||||
const m = new Date()
|
const m = new Date()
|
||||||
const d = m.getFullYear() + '/' +
|
const d = m.getFullYear() + '/' +
|
||||||
|
@ -109,6 +112,78 @@ function LogReq (req, toFile, sc) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setNoLogReadInterval () {
|
||||||
|
noLogips = utils.ReadFile('./nolog').split('\n')
|
||||||
|
setInterval(() => {
|
||||||
|
noLogips = utils.ReadFile('./nolog').split('\n')
|
||||||
|
}, 1000 * 60 * 30)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Load () {
|
||||||
|
try {
|
||||||
|
var prevData = utils.ReadFile(statFile)
|
||||||
|
data = JSON.parse(prevData)
|
||||||
|
} catch (e) {
|
||||||
|
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var prevVData = utils.ReadFile(vStatFile)
|
||||||
|
vData = JSON.parse(prevVData)
|
||||||
|
} catch (e) {
|
||||||
|
Log('Error at loading visit logs! (@ first run its normal)', GetColor('redbg'))
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
setNoLogReadInterval()
|
||||||
|
}
|
||||||
|
|
||||||
|
function LogStat (url) {
|
||||||
|
url = url.split('?')[0]
|
||||||
|
Inc(url)
|
||||||
|
AddVisitStat(url)
|
||||||
|
Save()
|
||||||
|
}
|
||||||
|
|
||||||
|
function Inc (value) {
|
||||||
|
if (value.startsWith('/?')) { value = '/' }
|
||||||
|
if (data[value] === undefined) { data[value] = 0 }
|
||||||
|
data[value]++
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddVisitStat (name) {
|
||||||
|
var m = new Date()
|
||||||
|
const now = m.getFullYear() + '/' + ('0' + (m.getMonth() + 1)).slice(-2) + '/' + ('0' + m.getDate()).slice(-2)
|
||||||
|
if (vData[now] === undefined) { vData[now] = {} }
|
||||||
|
if (vData[now][name] === undefined) { vData[now][name] = 0 }
|
||||||
|
vData[now][name]++
|
||||||
|
}
|
||||||
|
|
||||||
|
function Save () {
|
||||||
|
writes++
|
||||||
|
if (writes === writeInterval) {
|
||||||
|
try {
|
||||||
|
utils.WriteFile(JSON.stringify(data), statFile)
|
||||||
|
// Log("Stats wrote.");
|
||||||
|
} catch (e) {
|
||||||
|
Log('Error at writing logs!', GetColor('redbg'))
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
utils.WriteFile(JSON.stringify(vData), vStatFile)
|
||||||
|
// Log("Stats wrote.");
|
||||||
|
} catch (e) {
|
||||||
|
Log('Error at writing visit logs!', GetColor('redbg'))
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
writes = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function logHashed (x) {
|
||||||
|
return GetRandomColor(x.toString()) + x + C()
|
||||||
|
}
|
||||||
|
|
||||||
function GetRandomColor (ip) {
|
function GetRandomColor (ip) {
|
||||||
if (!ip) {
|
if (!ip) {
|
||||||
return 'red'
|
return 'red'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue