A small Lua interface to Sentry that also
has a helpful wrapper function call()
that takes any arbitrary Lua function
(with arguments) and executes it, traps any errors and reports it automatically
to Sentry.
The original library from Cloudflare has not been updated since January 2015. There were some bugs that were caught by users, and pull requests made to fix those bugs. Those updates were merged into this forked copy of the original repo.
- Fixes https connections: PR #4 by mattrobenolt
- Fixes invalid value
tags
for parameters: PR #13 by ye
local raven = require 'raven'
-- http://pub:secret@127.0.0.1:8080/sentry/proj-id
local rvn = raven:new("http://pub:secret@127.0.0.1:8080/sentry/proj-id", {
tags = { foo = "bar" },
})
-- Send a message to sentry
local id, err = rvn:captureMessage(
"Sentry is a realtime event logging and aggregation platform.",
{ tags = { abc = "def" } } -- optional
)
if not id then
print(err)
end
-- Send an exception to sentry
local exception = {{
["type"]= "SyntaxError",
["value"]= "Wattttt!",
["module"]= "__builtins__"
}}
local id, err = rvn:captureException(
exception,
{ tags = { abc = "def" } } -- optional
)
if not id then
print(err)
end
-- Catch an exception and send it to sentry
function bad_func(n)
return not_defined_func(n)
end
-- variable 'ok' should be false, and an exception will be sent to sentry
local ok = rvn:call(bad_func, 1)
See docs/index.html for more details.
# for unit tests
$luarocks install lunit
$luarocks install luaposix
# for generating docs
$luarocks install ldoc