Python sentry_sdk.push_scope() Examples
The following are 5
code examples of sentry_sdk.push_scope().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
sentry_sdk
, or try the search function
.
Example #1
Source File: dbot.py From avrae with GNU General Public License v3.0 | 7 votes |
def log_exception(exception=None, context: commands.Context = None): if config.SENTRY_DSN is None: return with sentry_sdk.push_scope() as scope: if context: # noinspection PyDunderSlots,PyUnresolvedReferences # for some reason pycharm doesn't pick up the attribute setter here scope.user = {"id": context.author.id, "username": str(context.author)} scope.set_tag("message.content", context.message.content) scope.set_tag("is_private_message", context.guild is None) scope.set_tag("channel.id", context.channel.id) scope.set_tag("channel.name", str(context.channel)) if context.guild is not None: scope.set_tag("guild.id", context.guild.id) scope.set_tag("guild.name", str(context.guild)) sentry_sdk.capture_exception(exception)
Example #2
Source File: sentry_integration.py From packit-service with MIT License | 6 votes |
def push_scope_to_sentry(): try: # so that we don't have to have sentry sdk installed locally import sentry_sdk except ImportError: class SentryMocker: def set_tag(self, k, v): pass yield SentryMocker() else: with sentry_sdk.push_scope() as scope: yield scope
Example #3
Source File: service.py From raiden-services with MIT License | 6 votes |
def handle_event(event: Event, context: Context) -> None: """ Calls the handler for the given event. Exceptions are caught and generate both error logs and sentry issues. Events are not retried after an exception. """ log.debug( "Processing event", event_=event, latest_confirmed_block=context.latest_confirmed_block, latest_unconfirmed_block=context.get_latest_unconfirmed_block(), ) handler = HANDLERS.get(type(event)) if handler: with sentry_sdk.push_scope() as sentry_scope: sentry_scope.set_tag("event", event.__class__.__name__) try: handler(event, context) log.debug( "Processed event", num_scheduled_events=context.database.scheduled_event_count(), ) except Exception as ex: # pylint: disable=broad-except log.error("Error during event handler", handled_event=event, exc_info=ex) sentry_sdk.capture_exception(ex)
Example #4
Source File: error_handler.py From bot with MIT License | 5 votes |
def handle_unexpected_error(ctx: Context, e: errors.CommandError) -> None: """Send a generic error message in `ctx` and log the exception as an error with exc_info.""" await ctx.send( f"Sorry, an unexpected error occurred. Please let us know!\n\n" f"```{e.__class__.__name__}: {e}```" ) ctx.bot.stats.incr("errors.unexpected") with push_scope() as scope: scope.user = { "id": ctx.author.id, "username": str(ctx.author) } scope.set_tag("command", ctx.command.qualified_name) scope.set_tag("message_id", ctx.message.id) scope.set_tag("channel_id", ctx.channel.id) scope.set_extra("full_message", ctx.message.content) if ctx.guild is not None: scope.set_extra( "jump_to", f"https://discordapp.com/channels/{ctx.guild.id}/{ctx.channel.id}/{ctx.message.id}" ) log.error(f"Error executing command invoked by {ctx.message.author}: {ctx.message.content}", exc_info=e)
Example #5
Source File: bot.py From bot with MIT License | 5 votes |
def on_error(self, event: str, *args, **kwargs) -> None: """Log errors raised in event listeners rather than printing them to stderr.""" self.stats.incr(f"errors.event.{event}") with push_scope() as scope: scope.set_tag("event", event) scope.set_extra("args", args) scope.set_extra("kwargs", kwargs) log.exception(f"Unhandled exception in {event}.")