Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1416 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Rediriger les Console.writeline vers un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rediriger les Console.writeline vers un fichier

n°1413179
Chandy
Patapäy
Posté le 25-07-2006 à 15:59:30  profilanswer
 

Salut,  
je commence le C Sharp / Dot net, et j'ai une application déjà construite qui bugge.
Je souhaiterais dans un premier temps rediriger toutes les traces vers un fichier de log. C 'est possible simplement ?
Merci  :hello:  
a+

mood
Publicité
Posté le 25-07-2006 à 15:59:30  profilanswer
 

n°1413212
Benwoua
XVI
Posté le 25-07-2006 à 16:30:47  profilanswer
 

Oui, tu déclares un StreamWriter provenant du namespace System.IO.
un peu dans le genre :
 

Code :
  1. //Code
  2. StreamWriter sw = new StreamWriter(ton_fichier_de_log);
  3. //Exemple, recuperer informations de debug dans une chaine str
  4. sw.WriteLine(ta_chaine_de_debug)
  5. //Et pas oublier de fermer le fichier de logs à la fin ;)
  6. sw.Close();


 
J'espère que c'est assez simple pour toi ^_^.


Message édité par Benwoua le 25-07-2006 à 16:32:27
n°1413231
Chandy
Patapäy
Posté le 25-07-2006 à 16:45:54  profilanswer
 

Merci, mais je pensais davantage à une méthode qui surcharge Console.writeLine de manière à ce que ca m'évite d'insérer ce bout de code partout dans mon appli.
 
S'possib ca ?  :)

n°1413239
_darkalt3_
Proctopathe
Posté le 25-07-2006 à 16:51:21  profilanswer
 

C'est pas une bonne idée de surcharger console::writeline.
 
Créer plutot un objet logger, qui lui pourra à son aise redigier les logs vers une fenetre, un fichier, etc.


---------------
Töp of the plöp
n°1413241
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2006 à 16:53:12  profilanswer
 

sinon, à l'invite de commande (si l'appli n'est pas interactive) :
 
monprogrammequiplante.exe > dtc.txt

n°1413243
_darkalt3_
Proctopathe
Posté le 25-07-2006 à 16:54:56  profilanswer
 

très joli nom de fichier :jap:


---------------
Töp of the plöp
n°1413244
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2006 à 16:56:04  profilanswer
 

"Da TrashCan"
(tu croyais quoi :ange:)
 
Accessoirement, ça peut être "the Denver Tech Center" :D
http://saloon.javaranch.com/6/000081.html


Message édité par Arjuna le 25-07-2006 à 16:58:07
n°1413246
_darkalt3_
Proctopathe
Posté le 25-07-2006 à 16:57:44  profilanswer
 

"Depuis Ta Console" en fait :ange:


---------------
Töp of the plöp
n°1413248
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2006 à 16:58:36  profilanswer
 

_darkalt3_ a écrit :

"Depuis Ta Console" en fait :ange:


:jap:

n°1413257
subtil
Posté le 25-07-2006 à 17:02:31  profilanswer
 

tiens tu peux lire ça pour avoir quelques idées
http://vincentlaine.developpez.com/tuto/dotnet/log/

mood
Publicité
Posté le 25-07-2006 à 17:02:31  profilanswer
 

n°1413305
Chandy
Patapäy
Posté le 25-07-2006 à 17:43:16  profilanswer
 

Merci à tous pour votre aide. Je vais faire un logger, le seul point qui est encore obscur est quelle est la fonction appelée lorsque je quitte mon programme ? ( j'aimerais close le logger à ce moment là ).

n°1413307
_darkalt3_
Proctopathe
Posté le 25-07-2006 à 17:44:00  profilanswer
 

:??:
 
fermer les fichiers ?


---------------
Töp of the plöp
n°1413311
Chandy
Patapäy
Posté le 25-07-2006 à 17:51:37  profilanswer
 

_darkalt3_ a écrit :

:??:
 
fermer les fichiers ?


 
Oui je voudrais fermer mon fichier de log quand je quitte l'application, car le StreamWriter n'écrit réellement que lorsque je le close.


Message édité par Chandy le 25-07-2006 à 17:51:57
n°1413353
_darkalt3_
Proctopathe
Posté le 25-07-2006 à 19:12:28  profilanswer
 

Que dit la doc ?


---------------
Töp of the plöp
n°1414035
Chandy
Patapäy
Posté le 26-07-2006 à 17:45:08  profilanswer
 

_darkalt3_ a écrit :

Que dit la doc ?


 
Je ne sais pas, mais d'après mes tests ce n'est que lorsque je fais StreamWriter.close() que l'écriture se fait réellement dans le fichier , et ce quelque soit la taille du buffer.

n°1414102
_darkalt3_
Proctopathe
Posté le 26-07-2006 à 20:26:34  profilanswer
 

où est le problème ?

n°1414254
Chandy
Patapäy
Posté le 27-07-2006 à 09:07:04  profilanswer
 

_darkalt3_ a écrit :

où est le problème ?


 
Le problème est que lorsque j'écris mes logs, je ne peux pas fermer puis rouvrir mon StreamWriter à chaque nouvelle ligne de log, donc je voudrais fermer mon StreamWriter seulement quand je quitte le programme.  
Le problème est que quand je ferme ma fenetre principale ( petite croix rouge ), il ne passe pas dans ma méthode "MainForm_Closing" dans laquelle je lui fais "close" du StreamWriter ( ce qui fait finalement l'écriture dans le fichier ). Donc au final le fichier reste vide...
J'espère que c clair  :D

n°1414256
_darkalt3_
Proctopathe
Posté le 27-07-2006 à 09:09:51  profilanswer
 

c'est étrange que ton code ne passe pas dedans;
 
y'a deux méthodes pour s'échapper d'une form, y'a closing et closed, ou approchant: la première s'effectue avant la fermeture, la seconde après. Tu peux tenter la seconde...

n°1414266
Chandy
Patapäy
Posté le 27-07-2006 à 09:23:14  profilanswer
 

Je bosse avec Visual Studio .NET 2003, ceci explique peut-être cela.

n°1414268
_darkalt3_
Proctopathe
Posté le 27-07-2006 à 09:25:59  profilanswer
 

Non non, aucun souci, j'ai déjà utilisé cette méthode avec cet environnement, pas de probleme.


---------------
Töp of the plöp
n°1414319
_Mose_
Lonesome coder
Posté le 27-07-2006 à 10:33:08  profilanswer
 

Perso, je ferme et réouvre le fichier à chaque entrée de mon loggeur.
Et ca ne bouffe pas grand chose comme ressources.
 
Sinon t'as StreamWriter.AutoFlush qui va écrire ton fichier au fur et à mesure.
Et StreamWriter.Flush qui l'écrit à la demande.

n°1414376
Chandy
Patapäy
Posté le 27-07-2006 à 11:47:08  profilanswer
 

_Mose_ a écrit :

Perso, je ferme et réouvre le fichier à chaque entrée de mon loggeur.
Et ca ne bouffe pas grand chose comme ressources.
 
Sinon t'as StreamWriter.AutoFlush qui va écrire ton fichier au fur et à mesure.
Et StreamWriter.Flush qui l'écrit à la demande.


 
Ok merci, le Flush fonctionne.
Comment est-ce que tu le réouvres ?

n°1414388
_darkalt3_
Proctopathe
Posté le 27-07-2006 à 11:55:13  profilanswer
 

Le flush n'entraine pas la fermeture du fichier.


---------------
Töp of the plöp
n°1414458
Chandy
Patapäy
Posté le 27-07-2006 à 13:10:26  profilanswer
 

Oui oui j'ai bien compris, mais je cherche une solution alternative comme celle de fermeture/reouverture de fichier à chaque fois.
Après fais un StreamWriter.close(), comment réouvres-tu le fichier ?

n°1414486
_darkalt3_
Proctopathe
Posté le 27-07-2006 à 13:41:50  profilanswer
 

ben comme tu l'as ouvert la première fois.
 
Et donc le flush t'évites d'avoir à ouvrir et refermer dès que tu veux que tes ajouts soient mis dans le fichier.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Rediriger les Console.writeline vers un fichier

 

Sujets relatifs
export base Mysql vers fichier excelNom de fichier valide
verifier qui qu' un mot existe dans un fichier txtnombre dans une BDD vers variable
[PHPNuke] limitation pour inclure un fichier dans un bloc ?[XSLT] Probleme de conversion d'un algorithme vers xsl
Probleme extention de fichierInsertion d'un fichier Excel dans un dossier Outlook
Erreur de recensement de fichier avec readdir 
Plus de sujets relatifs à : Rediriger les Console.writeline vers un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR