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