comparison mod_sentry/mod_sentry.lua @ 4290:2c73544e33ea

mod_sentry: Automatically attach exceptions for errors used in log parameters
author Matthew Wild <mwild1@gmail.com>
date Wed, 09 Dec 2020 16:30:21 +0000
parents 2ae71126e379
children cb3de818ff55
comparison
equal deleted inserted replaced
4289:de91b7cb7342 4290:2c73544e33ea
7 if have_pposix and pposix.uname then 7 if have_pposix and pposix.uname then
8 hostname = pposix.uname().nodename; 8 hostname = pposix.uname().nodename;
9 end 9 end
10 10
11 local loggingmanager = require "core.loggingmanager"; 11 local loggingmanager = require "core.loggingmanager";
12 local errors = require "util.error";
12 local format = require "util.format".format; 13 local format = require "util.format".format;
13 14
14 local default_config = assert(module:get_option("sentry"), "Please provide a 'sentry' configuration option"); 15 local default_config = assert(module:get_option("sentry"), "Please provide a 'sentry' configuration option");
15 default_config.server_name = default_config.server_name or hostname or "prosody"; 16 default_config.server_name = default_config.server_name or hostname or "prosody";
16 17
59 end 60 end
60 if level == "warn" then 61 if level == "warn" then
61 level = "warning"; 62 level = "warning";
62 end 63 end
63 64
65 local event = sentry:event(level, name):message(format(message, ...));
66
67 local params = { ... };
68 for i = 1, select("#", ...) do
69 if errors.is_error(params[i]) then
70 event:add_exception(params[i]);
71 end
72 end
73
64 submitting = true; 74 submitting = true;
65 sentry:event(level, name):message(format(message, ...)):send():catch(sentry_error_handler); 75 event:send():catch(sentry_error_handler);
66 submitting = false; 76 submitting = false;
67 end; 77 end;
68 end 78 end
69 79
70 loggingmanager.register_sink_type("sentry", sentry_log_sink_maker); 80 loggingmanager.register_sink_type("sentry", sentry_log_sink_maker);