diff src/error_log.js.luan @ 7:0472897e790d

add javascript
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 23 Jun 2022 23:38:03 -0600
parents
children a1db5223ced1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/error_log.js.luan	Thu Jun 23 23:38:03 2022 -0600
@@ -0,0 +1,36 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local String = require "luan:String.luan"
+local matches = String.matches or error()
+local trim = String.trim or error()
+local Table = require "luan:Table.luan"
+local Http = require "luan:http/Http.luan"
+local Logging = require "luan:logging/Logging.luan"
+local logger = Logging.logger "error_log"
+
+--[=[ when needed
+local bad_bots = {
+	[[Googlebot]]
+	[[bingbot]]
+}
+local bad_bots_ptn = Table.concat(bad_bots,"|")
+]=]
+
+local function priority(err)
+--[=[
+	local agent = Http.request.headers["user-agent"]
+	if agent~=nil and matches(agent,bad_bots_ptn) then return "info" end
+	if matches(err,[[Uncaught TypeError: Illegal invocation]]) then return "warn" end
+	if matches(err,[[\Q?fbclid=\E]]) then return "warn" end
+]=]
+	return "error"
+end
+
+return function()
+	local err = Http.request.parameters.err
+	if err == nil then
+		return  -- stupid bots
+	end
+	local call = priority(err)
+	logger[call](trim(err).."\n"..trim(Http.request.raw_head).."\n")
+end