view src/error_log.js.luan @ 35:1ce75c5ab0f7

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 03 Aug 2022 14:13:12 -0600
parents a1db5223ced1
children
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local String = require "luan:String.luan"
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