Ouverture/fermeture fichier LOG [Résolu]

Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Dernière intervention
27 novembre 2015
- 3 oct. 2006 à 17:10 - Dernière réponse :
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
- 4 oct. 2006 à 09:17
Bonjour,

Dans mon appli, je fais une classe pour écrire mes messages d'erreur dans un fichier texte. L'idée est que je version ces fichiers de log afin de changer de version lorsqu'il dépassera une certaines taille.
Voila donc une partie de ma classe ou je fais la mise à jour de mon fichier.

**************************************
      public static void WriteErreur()
        {
            using (StreamWriter stream = new StreamWriter(retNomFicLog(), true))
                {
                    stream.WriteLine(DateTime.Now + " " + Proc + ":" + MsgUser);
                    stream.WriteLine(DateTime.Now + " " + Proc + ":" + MsgInfo);
                }
        }
**************************************

J'ouvre et je ferme donc à chaque écrirture dans mon fichier LOG est-ce pénalisant pour les temps de réponse, la gestion de la mémoire ? Ne vaudrait il pas mieux ouvrir le fichier au début et le fermer à la fin ?

Merci de m'éclairer
DT
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
21 octobre 2010
- 3 oct. 2006 à 17:55
3
Merci
plutot que d'ouvrir fermer en permanence ton fichier, utilise console.writeline, et redirige la sortie standard sur un fichier


TextWriter Temp = Console.Out;

FileStream Logfile = new FileStream("Log.txt", FileMode.Append, FileAccess.Write);

StreamWriter LogStream = new StreamWriter(Logfile);

Console.SetOut(LogStream);
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss") + " - " + p_Msg);
LogStream.Close();
Console.SetOut(Temp);

Merci leprov 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de leprov
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 3 oct. 2006 à 17:35
0
Merci
Oui, la manipulation de fichier est une action très lente et qui peut provoquer pleins d'exceptions.
Le mieux c'est de mettre toutes les données à écrire dans un buffer, et ensuite ouvrir le fichier, écrire le tout, puis refermer...

<hr size="2" />VC# forever
Commenter la réponse de cs_Bidou
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Dernière intervention
27 novembre 2015
- 3 oct. 2006 à 17:42
0
Merci
Mon fichier étant un fichier de log, je ne peux me permettre de ne pas écrire tout de suite mes messages d'anomalies puisqu'en cas de plantage je n'aurai pas les derniers messages. Mais aux vues de ta réponse  je vais ouvrir le fichier dès le debut de mon process et le fermer à la fin

Merci
Slts

DT
Commenter la réponse de babe59
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Dernière intervention
4 mai 2007
- 4 oct. 2006 à 09:17
0
Merci
Personnellement je pense que rediriger la sortie vers un fichier reviendra strictement au même : il ouvrira et fermera le fichier en permanence.
Commenter la réponse de MoDDiB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.