IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Log appel méthode


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut Log appel méthode
    Bonjour à tous,

    Je ne savais pas comment intituler mon problème, désolé donc si le titre n'est pas clair.

    Pour vous expliquer mon contexte, je suis sur une application ASP.NET MVC 4 et j'ai besoin de créer un rapport, sur l'utilisation de l'application par les utilisateurs, une sorte de log on peut dire. Les logs doivent être stockés en base pour pouvoir être exporté vers un fichier Excel sous format CSV.
    Il est important de noter que j'ai besoin d'une solution générique et réutilisable car sera utilisée dans un de mes futurs projets.

    Pour ce faire j'ai décidé de partir sur une solution avec un attribut héritant de System.Web.Mvc.ActionFilterAttribute qui serait ajouté aux méthodes qui m'intéressent. J'ai choisi cette solution qui permet de ne pas toucher au code existant afin de ne pas apporter d'éventuels régressions, heureusement le code est assez segmenté et permet d'avoir un niveau de log assez précis.

    Seulement j'ai remarqué en cours de route que l'attribut héritant de ActionFilterAttribute ne peut s'appliquer que sur des méthodes retournant un ActionResult, en tout cas c'est l'impression que j'ai en regardant sur le net et d'après mes tests. Vous confirmez ? De plus vu comment je suis parti j'ai du mal à faire quelque chose de réutilisable...

    Jusqu'à présent je n'avais pas de problème mais maintenant j'ai besoin d'une solution similaire pour des méthodes ne retournant pas forcément un ActionResult, voire pas seulement en ASP.NET mais en C#. J'ai pensé à utiliser System.Attribute, mais en commençant à faire des tests j'ai l'impression que je vais avoir beaucoup de problèmes avec cette solution, de plus j'arrive à récupérer des informations seulement sur un attribut classe (AttributeTargets.Class) et pas méthode (AttributeTargets.Method).

    Est-ce que je suis sur la bonne voie ? Si non que me proposez-vous comme solution, suggestions ?

    Merci d'avance !

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Si non que me proposez-vous comme solution, suggestions ?
    Pourquoi ne pas utiliser les log de IIS. En quoi ne répondent-ils pas à ton besoin ?

  3. #3
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    SAlut,
    Citation Envoyé par Air P-E Voir le message
    j'ai besoin de créer un rapport, sur l'utilisation de l'application par les utilisateurs
    Mais quelle est l'information dont tu as besoin? Veux-tu savoir combien de fois une page s'affiche, le temps passé, etc.?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour à vous deux et merci pour vos réponses.

    Les logs IIS ont été une première solution pendant un temps mais manquaient d'informations. En effet ils ne contiennent que des informations assez basiques telles que la date, l'heure etc.

    Le projet en est à un stade où il est nécessaire de récupérer davantage d'informations comme un nom d'action associé à une méthode (pour faire simple), le type de plateforme (mobile/PC/MAC) et la version ainsi que le navigateur et tout le reste sont des informations spécifiques à l'application que je ne peux révéler.

    Ce que je ne vous ai pas explicitement dit aussi, c'est que la majeure partie de l'application est en MVC 4 mais une partie est un projet personnalisé. J'entends par là que ce n'est pas un projet application console, ni un projet ASP.NET, c'est un type de projet personnalisée qui doit être une "surcouche d'un service windows", bref... Et mon attribut ne fonctionne pas dans ce projet, si vous avez une idée... Je dis ça mais je ne sais pas si c'est lié au type de projet

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Si on enlève la dernière ligne un httpmodule aurait put faire l'affaire, mais du coup je n'ai plus d'idée à proposer.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bon je me suis renseigné un peu plus sur mon problème, je suis tombé sur des articles ou des forums concernant une intégration avec AOP, mais ça me paraît assez compliqué à mettre en place. Naturellement je suis aussi tombé sur Spring et PostSharp pour l'AOP mais le premier est compliqué et le deuxième me semble pas assez souple pour mon cas, de plus devient payant au bout de 45 jours.

    Concernant la mise en place avec System.Attribute, ça fonctionne également avec le projet personnalisé. Sur le papier ça a l'air sympa mais j'ai commencé à le mettre en place et il faut que je récupère le nom de la méthode parente pour loguer seulement sur la méthode qui a été appelée et pas toutes les méthodes décorées de l'attribut.

    De plus il faut que je fasse un appel à une méthode permettant de faire la réflexion et l'enregistrement en base, en gros à chaque fois que je sors d'une méthode décorée de mon attribut, comment m'y prendre pour cette partie ?

    J'ai également peur de soucis de performance... Si à chaque fois ça doit boucler sur tous les résultats c'est moyen..

    Des idées ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/07/2007, 12h15
  2. JSP Appel méthode JAVA
    Par maxime17s dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/06/2007, 11h59
  3. appel méthode d'une dll
    Par spilmann dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/02/2007, 11h47
  4. Appel Méthode 4D par Javascript
    Par mxh77 dans le forum 4D
    Réponses: 2
    Dernier message: 02/10/2006, 14h48
  5. Débutante - Pb appel méthode static
    Par nmetais dans le forum Langage
    Réponses: 2
    Dernier message: 23/09/2005, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo