Web API de journalisation d'audit
J'ai besoin de vérification du journal des appels sur mon API Web, idéalement, je voudrais utiliser un Attribut, quelque chose comme:
[HttpPost, Auditing]
public dynamic MyAPICall()
L'Attribut doit être en mesure d'intercepter les appels de l'API avant et après l'exécution afin d'enregistrer les paramètres et aussi, combien de temps l'appel d'API nécessaire à l'exécution.
Avec MVC, j'ai pu créer un ActionFilterAttribute dérivés et remplacer OnActionExecuted et OnActionExecuting.
Est l'équivalent possible dans le site Web de l'API monde?
OriginalL'auteur krisdyson | 2012-09-06
Vous devez vous connecter pour publier un commentaire.
Je voudrais utiliser un gestionnaire de message plutôt que sur les attributs.
c'est tout simplement la capture de l'information pour l'exploitation forestière. les détails de comment/ce qui est enregistré ou même comment faire pour afficher les journaux est une autre affaire. Celui qui est indépendante de cette question.
quel usage faites-vous de la
LoggingHandler
dans votreapi
controller
?Cette mise en œuvre est conçu pour enregistrer la requête/réponse. Si vous avez besoin d'un enregistreur dans le contrôleur de passer à un autre enregistreur de frappe pour le contrôleur, Il y a une variété d'options sur la façon de le faire.
OriginalL'auteur Jason Meckley
Http gestionnaire de message devrait être un bon extensible point pour de telles fins. Attention tout de même, il peut y avoir quelques problèmes avec simultané du contenu de demande de lecture. Par exemple, le Modèle de Classeur peut essayer de lire du contenu de demande alors que
LoggingHandler
est-ce la lecture et ne parviennent pas à désérialiser un modèle. Pour éviter de tels problèmes d'ajouter Attente appel à la LogRequestLoggingInfo méthode.Vous pouvez en lire plus à ce sujet ici.
+1 pour exactement ce dont j'avais besoin
comment appliquez-vous le
LoggingHandler
dans votreapi
controller
?Le lien est mort, voici un wayback lien web.archive.org/web/20160229083551/http://homenko.net/post/2013/...
OriginalL'auteur k0stya
Avez-vous regardé les API Web service de recherche?
http://www.asp.net/web-api/overview/testing-and-debugging/tracing-in-aspnet-web-api
ITraceWriter
et du Fil.CurrentPrincipal donc je n'ai pas utiliser l'auditeur.lienEu ... il semble que le bug a été résolu tho'?
ITraceWriter cassé mon projet quand j'ai essayé de l'installer, je ne le recommande pas. Il a désinstallé le fichier d'assembly, donc si quelqu'un veut l'essayer, assurez-vous de sauvegarder votre projet!
OriginalL'auteur Mike Wasson
Je pense que vous serez intéressé de prendre un coup d'oeil à l'API Web de traçage http://www.asp.net/web-api/overview/testing-and-debugging/tracing-in-aspnet-web-api. Il vous permet de regarder dans le mécanisme interne de l'API Web.
Dans votre cas, je suppose que vous êtes particulièrement intéressé dans ce qui est l'entrée et la sortie de mesures. De sorte que vous pouvez droit de votre TraceWriter comme exemple suivant pour filtrer les informations redondantes:
OriginalL'auteur Troy Dai
J'ai travaillé sur une bibliothèque qui vous permet de vous connecter à des interactions avec ASP.NET Contrôleurs d'API Web en utilisant les Filtres d'actions.
Il peut enregistrer des appels de méthode avec l'appelant info, les arguments de sortie, la durée, les exceptions et les plus.
Prendre un coup d'oeil à L'Audit.WebApi.
Vous pouvez rapidement créer un exemple de projet qui utilise cette bibliothèque avec les commandes suivantes:
OriginalL'auteur thepirat000