-- 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)