2009-12-18 8 views
2

Nous utilisons log4net pour enregistrer notre application de formulaires Web asp.net. Notre exploitation forestière est généralement dans notre couche d'affaires et la mise en œuvre typique est comme cejournalisation - modification de la mise en œuvre?

SomeMethodCall(MethodParams) 
{ 
    Log.Start("Starting Some Method"); 
    try 
    { 
    //do something 
    } 
    catch(Exception ex) 
    { 
    Log.Exception("exception in SomeMethodCall" + ex.message); 
    } 

    Log.End("End SomeMethod"); 
} 

Dans mon opinon, il est un peu maladroit. Y at-il une façon plus simple de le faire sans utiliser AOP? Je ne suis pas sûr si je devrais avoir la surcharge d'ajouter un cadre, juste pour la journalisation, pensé que je comprends qu'il me donnerait beaucoup d'autres options (que je fais pas besoin)

Je pense utiliser certains frameworks AOP pour le faire d'une manière plus propre, simplement en marquant les méthodes avec des attributs pour enregistrer et gérer les exceptions.

Il y a deux choses que je suis préoccupé par l'AOP (après ma première lecture).

Certains frameworks injectent du code dans votre IL (selon ce que je comprends) et je suis inquiet si cela pourrait me tromper. Je pourrais regarder la ligne x, donnée par mon cadre AOP, où elle pourrait être la ligne y dans ma demande. Ma peur est-elle infondée? Performances: Quel pourcentage de la charge de travail serait ajouté si vous utilisiez un framework AOP.

Editer: Je regardais aussi dans PolicyInjectionApplicationBlock. Malheureusement, je n'ai pas le luxe de changement implementaions dans ma logique métier

Répondre

2

Voulez-vous dire que la plupart/toutes vos méthodes prennent cette structure? Si oui, mon conseil serait d'atténuer votre enregistrement. (Je souligne que c'est un conseil, et peut-être aussi des conseils controversés).

Il ne devrait pas vraiment être nécessaire d'utiliser un journal général de l'entrée et de la sortie de chaque méthode de cette manière, mais placez vos entrées de journal de manière plus stratégique. J'aime m'assurer que tous les messages de log ont un «but» - si je ne peux pas penser à un scénario où ce message de journal aiderait ou m'aiderait d'une certaine manière pendant le débogage alors il n'a aucune affaire dans mon code!

+0

non, pas tout. Appels de méthode juste importants – ram