J'essaie de trouver la meilleure méthode pour effectuer la journalisation dans l'application que je suis en train de développer.Exécution des opérations de journalisation dans MVC .NET
maintenant, j'ai une table de journal qui stocke le nom d'utilisateur, l'horodatage, l'action, le contrôleur et un message. Lorsqu'un contrôleur est instancié, il reçoit l'information de l'IoC via Castle Windsor.
par exemple, mon contrôleur « Sites » est créé comme suit:
private ISitesRepository siteRepository;
private ILogWriter logWriter;
public SiteController(ISitesRepository siteRepository, ILogWriter logWriter)
{
this.siteRepository = siteRepository;
this.logWriter = logWriter;
}
et l'auteur du journal a une fonction qui crée et insère une entrée de journal (WriteToLog). Dans les actions Edit et Create du contrôleur de site, il appelle la fonction WriteToLog.
cela fonctionne et fait son travail, mais ma question est - ai-je vraiment besoin de configurer chaque contrôleur de cette façon, en passant par l'interface/référentiel ILogWriter? Il m'a semblé que je pourrais peut-être mettre en place un LogController, et avoir juste cela faire le "lourd" de l'écriture de mes journaux. De cette façon, je n'aurais pas à jouer avec les trucs IoC dans tous les autres contrôleurs. est-il possible d'exécuter une action sur un autre contrôleur (par exemple, un LogController-> WriteLog)? Je ne sais pas comment cela se ferait sans faire de redirection ...
un comment- la seule chose que je n'aime pas à ce sujet est que je ne peux pas personnaliser le champ « message » avec des données qui ne peuvent être trouvées que dans l'action qui provoque le déclenchement du filtre. travaillera sur ceci. –