diff options
| author | RblSb <msrblsb@gmail.com> | 2021-10-13 17:09:08 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2021-10-13 17:09:08 +0300 |
| commit | 575cc77af5258b87c79bdd500690774f6281348a (patch) | |
| tree | 37929ec6d38d5f1291dd61be6223053f8a0f1f8f | |
| parent | e043a008063ec72c796409f0f15be5fc6dc8f41d (diff) | |
Stringify time in log
| -rw-r--r-- | build/server.js | 24 | ||||
| -rw-r--r-- | src/server/ConsoleInput.hx | 5 | ||||
| -rw-r--r-- | src/server/Logger.hx | 14 | ||||
| -rw-r--r-- | src/server/Main.hx | 2 | ||||
| -rw-r--r-- | src/server/ServerEvent.hx | 2 |
5 files changed, 37 insertions, 10 deletions
diff --git a/build/server.js b/build/server.js index 8000342..d256692 100644 --- a/build/server.js +++ b/build/server.js @@ -3623,7 +3623,7 @@ server_ConsoleInput.prototype = { } } var _g1 = 0; - while(_g1 < _g.length) haxe_Log.trace(haxe_io_Path.withoutExtension(_g[_g1++]),{ fileName : "src/server/ConsoleInput.hx", lineNumber : 141, className : "server.ConsoleInput", methodName : "parseLine"}); + while(_g1 < _g.length) haxe_Log.trace(haxe_io_Path.withoutExtension(_g[_g1++]),{ fileName : "src/server/ConsoleInput.hx", lineNumber : 142, className : "server.ConsoleInput", methodName : "parseLine"}); break; case "removeAdmin": this.main.removeAdmin(args[0]); @@ -3644,7 +3644,7 @@ server_ConsoleInput.prototype = { var len = args.length; var actual = this.commands.h[command].args.length; if(len != actual) { - haxe_Log.trace("Wrong count of arguments for command \"" + command + "\" (" + len + " instead of " + actual + ")",{ fileName : "src/server/ConsoleInput.hx", lineNumber : 153, className : "server.ConsoleInput", methodName : "isValidArgs"}); + haxe_Log.trace("Wrong count of arguments for command \"" + command + "\" (" + len + " instead of " + actual + ")",{ fileName : "src/server/ConsoleInput.hx", lineNumber : 154, className : "server.ConsoleInput", methodName : "isValidArgs"}); return false; } return true; @@ -3674,7 +3674,7 @@ server_ConsoleInput.prototype = { var data = _g.value; list.push("" + StringTools.rpad("/" + _g.key + " " + data.args.join(" ")," ",maxLength) + " | " + data.desc); } - haxe_Log.trace("Unknown command \"" + line + "\". List:\n" + list.join("\n"),{ fileName : "src/server/ConsoleInput.hx", lineNumber : 172, className : "server.ConsoleInput", methodName : "printHelp"}); + haxe_Log.trace("Unknown command \"" + line + "\". List:\n" + list.join("\n"),{ fileName : "src/server/ConsoleInput.hx", lineNumber : 173, className : "server.ConsoleInput", methodName : "printHelp"}); } ,__class__: server_ConsoleInput }; @@ -3881,6 +3881,20 @@ server_Logger.prototype = { if(this.logs.length > 1000) { this.logs.shift(); } + if(this.hasSameLatestEvents("GetTime",5)) { + this.logs.splice(this.logs.length - 3,1); + } + } + ,hasSameLatestEvents: function(type,count) { + if(this.logs.length < count) { + return false; + } + var _g = 1; + var _g1 = count + 1; + while(_g < _g1) if(this.logs[this.logs.length - _g++].event.type != type) { + return false; + } + return true; } ,saveLog: function() { if(this.logs.length == 0) { @@ -3889,7 +3903,7 @@ server_Logger.prototype = { server_Utils.ensureDir(this.folder); this.removeOldestLog(this.folder); var name = DateTools.format(new Date(),"%Y-%m-%d_%H_%M_%S"); - js_node_Fs.writeFileSync("" + this.folder + "/" + name + ".json",JSON.stringify(this.logs,$bind(this,this.filterNulls),"\t")); + js_node_Fs.writeFileSync("" + this.folder + "/" + name + ".json",JSON.stringify(this.getLogs(),$bind(this,this.filterNulls),"\t")); } ,getLogs: function() { return this.logs; @@ -4314,7 +4328,7 @@ server_Main.prototype = { } ,onMessage: function(client,data,internal) { var _gthis = this; - this.logger.log({ clientName : client.name, clientGroup : client.group, event : data, time : new Date().getTime()}); + this.logger.log({ clientName : client.name, clientGroup : client.group, event : data, time : HxOverrides.dateStr(new Date())}); switch(data.type) { case "AddVideo": if(!this.checkPermission(client,"addVideo")) { diff --git a/src/server/ConsoleInput.hx b/src/server/ConsoleInput.hx index 119d87e..4ae729c 100644 --- a/src/server/ConsoleInput.hx +++ b/src/server/ConsoleInput.hx @@ -135,8 +135,9 @@ class ConsoleInput { case LogList: Utils.ensureDir(main.logsDir); - final names = FileSystem.readDirectory(main.logsDir) - .filter(s -> s.endsWith(".json")); + final names = FileSystem.readDirectory(main.logsDir).filter(s -> { + return s.endsWith(".json"); + }); for (name in names) { trace(Path.withoutExtension(name)); } diff --git a/src/server/Logger.hx b/src/server/Logger.hx index f089c94..c1d82d8 100644 --- a/src/server/Logger.hx +++ b/src/server/Logger.hx @@ -1,5 +1,6 @@ package server; +import Types.WsEventType; import haxe.Json; import haxe.io.Path; import sys.FileSystem; @@ -24,6 +25,17 @@ class Logger { public function log(event:ServerEvent):Void { logs.push(event); if (logs.length > 1000) logs.shift(); + if (hasSameLatestEvents(GetTime, 5)) { + logs.splice(logs.length - 3, 1); + } + } + + function hasSameLatestEvents(type:WsEventType, count:Int):Bool { + if (logs.length < count) return false; + for (i in 1...count + 1) { + if (logs[logs.length - i].event.type != type) return false; + } + return true; } public function saveLog():Void { @@ -31,7 +43,7 @@ class Logger { Utils.ensureDir(folder); removeOldestLog(folder); final name = DateTools.format(Date.now(), "%Y-%m-%d_%H_%M_%S"); - File.saveContent('$folder/$name.json', Json.stringify(logs, filterNulls, "\t")); + File.saveContent('$folder/$name.json', Json.stringify(getLogs(), filterNulls, "\t")); } public function getLogs():Array<ServerEvent> { diff --git a/src/server/Main.hx b/src/server/Main.hx index 3ab0621..7a1b06a 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -405,7 +405,7 @@ class Main { clientName: client.name, clientGroup: client.group.toInt(), event: data, - time: Date.now().getTime() + time: Date.now().toString() }); switch (data.type) { case Connected: diff --git a/src/server/ServerEvent.hx b/src/server/ServerEvent.hx index 6b9080f..1817028 100644 --- a/src/server/ServerEvent.hx +++ b/src/server/ServerEvent.hx @@ -3,7 +3,7 @@ package server; import Types.WsEvent; typedef ServerEvent = { - time:Float, + time:String, clientName:String, clientGroup:Int, event:WsEvent |
