Mercurial > prosody-modules
comparison mod_sentry/sentry.lib.lua @ 4288:26bc1ae88ccb
mod_sentry: Ensure frames gets encoded as a JSON array, even if empty
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 09 Dec 2020 16:22:04 +0000 |
parents | 2c4157785b42 |
children | de91b7cb7342 |
comparison
equal
deleted
inserted
replaced
4287:2c4157785b42 | 4288:26bc1ae88ccb |
---|---|
1 local array = require "util.array"; | |
1 local hex = require "util.hex"; | 2 local hex = require "util.hex"; |
2 local random = require "util.random"; | 3 local random = require "util.random"; |
3 local url = require "socket.url"; | 4 local url = require "socket.url"; |
4 local datetime = require "util.datetime".datetime; | 5 local datetime = require "util.datetime".datetime; |
5 local http = require 'net.http' | 6 local http = require 'net.http' |
67 data = get_error_data(e.instance_id, e.context); | 68 data = get_error_data(e.instance_id, e.context); |
68 }; | 69 }; |
69 }; | 70 }; |
70 local traceback = e.context.traceback; | 71 local traceback = e.context.traceback; |
71 if traceback and type(traceback) == "table" then | 72 if traceback and type(traceback) == "table" then |
72 local frames = {}; | |
73 for i = #traceback, 1 do | 73 for i = #traceback, 1 do |
74 local frames = array(); | |
74 local frame = traceback[i]; | 75 local frame = traceback[i]; |
75 table.insert(frames, { | 76 table.insert(frames, { |
76 ["function"] = frame.info.name; | 77 ["function"] = frame.info.name; |
77 filename = frame.info.short_src; | 78 filename = frame.info.short_src; |
78 lineno = frame.info.currentline; | 79 lineno = frame.info.currentline; |