Mercurial > prosody-modules
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); |