2017-08-23 5 views
0

Je souhaite signaler un événement Sentry avec une balise spécifiée, mais je ne souhaite pas l'inclure dans les événements futurs.Comment puis-je marquer un seul événement Sentry?

Avec le code suivant, je suis l'ajout d'une étiquette et un rapport d'événement:

Sentry.getContext().addTag("my_tag", "yes"); 
Sentry.capture("event happened"); 

Puis, après un certain temps, un autre événement se produit:

Sentry.capture("another event happened"); // tag is included, but I don't want it 

J'ai essayé d'enlever par tag Sentry.clearContext() mais il efface toutes les informations, y compris les chapelures.

J'ai également essayé Sentry.getContext().getTags().remove("my_tag"); mais, comme les balises sont conservées en UnmodifiableMap, cette opération génère une exception.

+1

C'est sans aucun doute un oubli dans la mise en œuvre actuelle . Je suppose (à tort) que les utilisateurs voudraient que les balises soient définies pour toute la durée du contexte. J'ai créé un problème ici, et je pense que le meilleur plan d'action est peut-être d'ajouter une méthode 'removeTag', des idées?: Https://github.com/getsentry/sentry-java/issues/496 – Brett

Répondre

1

Au sentry-java 1.5.2 (vient de sortir pour résoudre ce problème), vous pouvez utiliser de nouvelles méthodes sur le Context pour nettoyer après les étiquettes temporaires/données supplémentaires:

Sentry.getContext().removeTag("my_tag"); 
Sentry.getContext().clearTags(); 

Sentry.getContext().removeExtra("my_extra"); 
Sentry.getContext().clearExtra();