-- load the log module
local log = require("log")

-- some function for demo
function add(a, b)
   return a+b
end

-- wrap the main script in a main function
function main()
   add(128, 293    )
   add(227, "43.23") -- internal conversion works
   add(227, "43,23") -- internal conversion fails -> program crashes
   add(983, 123    ) -- never reached
end

-- register functions for logging
log.Functions =
{
   ["add"] = true,
}

-- initialize the logging
log.initLog()

 -- call main func and writeLog in case of failure
xpcall(main, log.writeLog)