begin process at 2012 02 11 18:39:35
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Astuces

 > [C#]CENTRALISER L’ÉCRITURE DES LOG AVEC UNE EXCEPTION PERSONNALISÉE...

[C#]CENTRALISER L’ÉCRITURE DES LOG AVEC UNE EXCEPTION PERSONNALISÉE...


 Information sur le tutoriel

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

 Description

Ceci va vous permettre de centraliser en un point unique de vos application l'ecriture des logs (dans un fichier ou l'eventview). Et d'ajouter à ce au message inclue dans se log des données utile au débug.

Tutorial

Pour ce faire il faut commencer par dériver de la classe Execption

            public class ExceptionPerso : Exception

 

Il mettre un constructeur approprié

 

public ExceptionPerso(Exception e)

{

_ExcepOrigine = e;

}

 

Vous n’aurez pas manqué de constater qu’il manque la donnée membre _ExcepOrigine, donc ajoutons la, et par la même occasion les membres utile pour notre exception perso

 

private int _Data1 = 0;

private string _Data2 = String.Empty;

private Exception _ExcepOrigine = null;

 

Pour les renseigner il faudra des accesseurs

 

public int Data1 {set{_Data1 = value;}}

public string Data2 {set{_Data2 = value;}}

 

Inutile de mettre un accesseur pour l’exeption d’origine, elle est renseignée via le constructeur.

 

 

Une fois la classe a peut prêt au point, reste a mettre les methodes

A priori la methode writelog sera utile

 

public void WriteInLog()

            {

                  string DetailInfo = "";

DetailInfo += "La donnéz 1 est = " + _Data1.ToString() + Environment.NewLine;

DetailInfo += "La donnée 2 " + _Data2 + Environment.NewLine;

                  Log.Write(DetailInfo, _ExcepOrigine, Log.LogLevel.Fatal);

            }

Bien sur on peut utiliser un stringBuilder.

Et la classe Log reste a faire (peut être un prochain post si quelqu’un est intéresse)

 

 

Maintenant, comment faire remonter cette erreur ?

Rien de plus simple

Dans vos cacth (ou via un throw voulu)

Ajouter des throw jusqu’au plus au niveau du programme

catch (Exception e)

 {

    ExceptionPerso ePerso;

    if (!(e is ExceptionPDF))

    {

       ePerso = new ExceptionPerso(e);

    }

    else

    {

      ePerso = (ExceptionPerso)e;

    }

                       

    ePerso.Data1 = _IdUser;  

    ePerso.Data2 = "A cette endroit du code, surment un prb avec le user";

 

    throw ePerso;

 }

A votre dispo

 

Commentaires

Commentaire de coq le 17/11/2005 22:25:53 administrateur CS

Un tant soit peu de mise en page serait bienvenu je pense...

Commentaire de MorpionMx le 18/11/2005 11:10:34 administrateur CS

...Et de correction dans l'ortho des noms des classes et des mots clés ;)

Commentaire de Crazyht le 18/11/2005 13:36:20 administrateur CS

Bon alors le maintient de l'exception d'origine que tu l'appelles peut se faire en natif sur toutes les exceptions par la propriétés InnerException.

En deuxième remarque je dirait que if (!(e is ExceptionPDF)) devrait plutôt être if (!(e is ExceptionPerso)).

De plus conceptuellement, une exception n’a pas à tracer quoi que ce soit, on fait des gestionnaires séparés pour ce genre d’action…

Bonne continuation.
CrazyHT

Commentaire de OursPasNet le 18/11/2005 14:21:29

Ok ok oui c'est vrai
Conceptuellement c'est pas parfait.
J'ai juste voulu montrer comment je m'en suis sorti pour faire ce type de gestion en un minimum de temps et avec un minimum de contraites.
J'essayerai de faire mieux si un jour je repost un tutorial.

Sorry

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales