OVH Cloud OVH Cloud

Problème avec StremWriter.Writeline

4 réponses
Avatar
Kati
Bonjour,

Je suis en train de travailler sur un syst=E8me qui devrait=20
me permettre d'enregistrer toutes les erreurs dans un=20
fichier (notamment les erreurs relatives aux connexions =E0=20
la base, ou =E0 l'ex=E9cution des proc=E9dures stock=E9es).
Donc j'ai cr=E9e un fichier Debug.txt.
Et j'appelle la m=E9thode AddToDebug =E0 chaque fois que =E7a=20
passe dans un catch de ma classe c#.

Mon probl=E8me, c'est qu'=E0 chaque nouvelle ligne que je=20
mets dans le debug, il m'=E9crase les autres...

Voici ce que j'ai fait :=20

// dans la classe=20
catch (Exception ex)
{
Debug aDebug =3D new Debug();
aDebug.myErrorText =3D ("\r\n"+ex.ToString());
aDebug.AddToDebug();
}

// ma fonction AddToDebug :=20
StreamWriter myStream =3D File.CreateText("debug.txt");
myStream.WriteLine (DateTime.Now);
myStream.Write (myErrorText);
myStream.Close();

Je pr=E9cise que myErrorText est l'attribut de mon objet=20
Debug qui r=E9cup=E8re la chaine de caract=E8res =E0 =E9crire dans=20
lefichier.

Merci pour votre aide.

Kati

4 réponses

Avatar
LEBRUN Thomas
Tu es sur qu'il efface toutes les autres ? Est-ce qu'il n'efface pas le précédent fichier debug.txt pour le recréer ?
Car tu utilises CreateText.....

Sinon, essaye de concatener les messages, peut-être au moyen de Append

Tom


----- Kati a écrit : ----

Bonjour

Je suis en train de travailler sur un système qui devrait
me permettre d'enregistrer toutes les erreurs dans un
fichier (notamment les erreurs relatives aux connexions à
la base, ou à l'exécution des procédures stockées)
Donc j'ai crée un fichier Debug.txt
Et j'appelle la méthode AddToDebug à chaque fois que ça
passe dans un catch de ma classe c#

Mon problème, c'est qu'à chaque nouvelle ligne que je
mets dans le debug, il m'écrase les autres..

Voici ce que j'ai fait :

// dans la classe
catch (Exception ex

Debug aDebug = new Debug()
aDebug.myErrorText = ("rn"+ex.ToString())
aDebug.AddToDebug()


// ma fonction AddToDebug :
StreamWriter myStream = File.CreateText("debug.txt")
myStream.WriteLine (DateTime.Now)
myStream.Write (myErrorText)
myStream.Close()

Je précise que myErrorText est l'attribut de mon objet
Debug qui récupère la chaine de caractères à écrire dans
lefichier

Merci pour votre aide

Kat
Avatar
Paul Bacelar
Au lieu de réinventer une roue carrée, regardez la class
System.Diagnostics.Debug ;-) .
--
Paul Bacelar
Développeur, Consultant, Expert en technologie de développement Microsoft.
Recherchant poste CDI/CDD/FREELANCE.

"LEBRUN Thomas" a écrit dans le message de
news:
Tu es sur qu'il efface toutes les autres ? Est-ce qu'il n'efface pas le


précédent fichier debug.txt pour le recréer ?
Car tu utilises CreateText......

Sinon, essaye de concatener les messages, peut-être au moyen de Append.


Tom.



----- Kati a écrit : -----

Bonjour,

Je suis en train de travailler sur un système qui devrait
me permettre d'enregistrer toutes les erreurs dans un
fichier (notamment les erreurs relatives aux connexions à
la base, ou à l'exécution des procédures stockées).
Donc j'ai crée un fichier Debug.txt.
Et j'appelle la méthode AddToDebug à chaque fois que ça
passe dans un catch de ma classe c#.

Mon problème, c'est qu'à chaque nouvelle ligne que je
mets dans le debug, il m'écrase les autres...

Voici ce que j'ai fait :

// dans la classe
catch (Exception ex)
{
Debug aDebug = new Debug();
aDebug.myErrorText = ("rn"+ex.ToString());
aDebug.AddToDebug();
}

// ma fonction AddToDebug :
StreamWriter myStream = File.CreateText("debug.txt");
myStream.WriteLine (DateTime.Now);
myStream.Write (myErrorText);
myStream.Close();

Je précise que myErrorText est l'attribut de mon objet
Debug qui récupère la chaine de caractères à écrire dans
lefichier.

Merci pour votre aide.

Kati



Avatar
Kati
Merci pour votre aide.
Tom, tu avais entièrement raison, ce n'était pas le
writeline qui effaçait tout, mais le CreateText qui
écrasait le fichier à chaque fois... Du coup je l'ai
remplacé par un Append et ça tourne !

Merci encore !

Kati
-----Message d'origine-----
Tu es sur qu'il efface toutes les autres ? Est-ce qu'il


n'efface pas le précédent fichier debug.txt pour le
recréer ?
Car tu utilises CreateText......

Sinon, essaye de concatener les messages, peut-être au


moyen de Append.


Tom.



----- Kati a écrit : -----

Bonjour,

Je suis en train de travailler sur un système qui


devrait
me permettre d'enregistrer toutes les erreurs dans


un
fichier (notamment les erreurs relatives aux


connexions Ã
la base, ou à l'exécution des procédures


stockées).
Donc j'ai crée un fichier Debug.txt.
Et j'appelle la méthode AddToDebug à chaque fois


que ça
passe dans un catch de ma classe c#.

Mon problème, c'est qu'à chaque nouvelle ligne


que je
mets dans le debug, il m'écrase les autres...

Voici ce que j'ai fait :

// dans la classe
catch (Exception ex)
{
Debug aDebug = new Debug();
aDebug.myErrorText = ("rn"+ex.ToString());
aDebug.AddToDebug();
}

// ma fonction AddToDebug :
StreamWriter myStream = File.CreateText


("debug.txt");
myStream.WriteLine (DateTime.Now);
myStream.Write (myErrorText);
myStream.Close();

Je précise que myErrorText est l'attribut de mon


objet
Debug qui récupère la chaine de caractères Ã


écrire dans
lefichier.

Merci pour votre aide.

Kati

.



Avatar
LEBRUN Thomas
Content de voir que cela marche pour toi :

Mais comme le suggère Paul, regarde la classe System.Diagnostics.Debug