ecriture dans un fichier

ecriture dans un fichier - Java - Programmation

Marsh Posté le 09-06-2004 à 10:08:40    

salut
g un probleme d ecriture dans un fichier.
Je veu mettre en place un system de log sur un client serveur et donc je cree un filewriter dans un fichier text mais le probleme est que je n arrive pas a passer a la ligne pour ordonner le contenu de mon fichier.il ecrit tt a la suite.
 :??:
 

Reply

Marsh Posté le 09-06-2004 à 10:08:40   

Reply

Marsh Posté le 09-06-2004 à 10:18:33    

Te casse pas la tête à réinventer la roue et le fil à couper le beurre.
Outils de log : Log4j, Logkit, ...

Reply

Marsh Posté le 09-06-2004 à 10:34:38    

API log 1.4...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 09-06-2004 à 10:55:44    

N existe t il pas tt simplement un caractere detecté par un fichier text qui renvoi a la ligne?

Reply

Marsh Posté le 09-06-2004 à 11:12:57    

c plus propre de passer par une API de log : t'a une granularité, c hyper optimisé, etc...
 
Sinon pour ta question t'a essayé Character.LINE_SEPARATOR ?


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 09-06-2004 à 20:55:46    

justement, pour ma part j'utilise l'api de log. Mais je veuxqu'il m'écrive simplement dans mon fichier log et non pas dans ma console. Est ce que c'est possible, je pense bien que oui mais bon, je ne vois pas trop le moyen de le faire...

Reply

Marsh Posté le 10-06-2004 à 10:41:36    

brasseldX a écrit :

justement, pour ma part j'utilise l'api de log. Mais je veuxqu'il m'écrive simplement dans mon fichier log et non pas dans ma console. Est ce que c'est possible, je pense bien que oui mais bon, je ne vois pas trop le moyen de le faire...


 
Avec l'api de log du jdk 1.4, ajoute un FileHandler à ton Logger.
Par défaut ça doit être un ConsoleHandler

Reply

Marsh Posté le 11-06-2004 à 10:08:24    

Oui je sais bien, mais moi je veux qu'il m'écrive tout dans un fichier log et uniquement dans un fichier log. J'utilise donc un FileHandler. Il écrit bien dans mon fichier log mais il écrit également sur la console. Et moi je ne veux pas qu'il écrive dans ma console. Et je ne sais pas comment le virer ....

Reply

Marsh Posté le 11-06-2004 à 10:37:10    

Avant de créer ton logger, essaie de faire un reset() sur LogManager :  
 
LogManager.getLogManager().reset();

Reply

Marsh Posté le 11-06-2004 à 10:50:29    

Effectivement, c'est la solution. Mais tu saurai m'expliquer en deux trois mots pourquoi ? Pourquoi faut-il faire un reset ? Le consoleHandler est créé par défaut ? Si c'est le cas, pourquoi est-ce utile de pouvoir rajouter un consoleHandler s'il est déjà présent par défaut ?

Reply

Marsh Posté le 11-06-2004 à 10:50:29   

Reply

Marsh Posté le 11-06-2004 à 11:34:51    

c simple : les loggers suivent une hiérarchie...et donc t'a tjs un rootLogger, parent de tous les loggers...
 
le rootLoger a comme handler par défaut le ConsoleHandler...
 
tt logger propage ses message de logs à tous ses loggers parents...

Citation :

By default, loggers also publish to their parent's Handlers, recursively up the tree.


 
donc si tu veux un logger spécialisé (sur un fichier par ex) et éviter que tt les parents sortent les logs aussi sur leur handler propre, t'a 2 façons :  
- tu fais taire les loggers parents en leur virant leurs handler (coup du reset sur le rootLogger par ex comme le montre pascal34)...c assez sale, parce que par ex si tu a un logger de package, et un par classe, tu peux vouloir que certaines infos remontent...
- empecher la propagation dans l'arbre
http://java.sun.com/j2se/1.4.2/doc [...] s(boolean)
 


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 11-06-2004 à 12:15:28    

Ok d'accord merci beaucoup. Vraiment sympa cette API de log. Avant je me cassais toujours la téte avec un objet que j'avais créé moi même..... il faut lire la javadoc ....
;-)

Reply

Marsh Posté le 11-06-2004 à 12:31:49    

Faut bien lire la javadoc de Logger, ca explique tt le méchanismes...
 
en gros un logger logue, le handler récupère le matos et l'envoit vers une sortie, et le formatter dit à quoi ca doit ressembler...qd t'a compris ca t'a la base des logs...
 
Après le truc chiant c l'histoire de la hiérarchie des logs, et du fait que les logs ressemblent à des singletons...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 11-06-2004 à 14:40:26    

brasseldX a écrit :

Effectivement, c'est la solution. Mais tu saurai m'expliquer en deux trois mots pourquoi ? Pourquoi faut-il faire un reset ?  


 
J'ai eu un problème similaire avec Log4j.
J'ai enlevé tous les appenders du logger racine et j'ai ensuite ajouté mon logger et ça a fonctionné.
Je me suis dit que c'était peut-être le même problème avec l'api de log du jdk 1.4

Reply

Marsh Posté le 11-06-2004 à 15:40:27    

t'a eu d'autant plus raison que l'api est fortement pompée sur log4J


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 13-06-2004 à 20:13:08    

Jubijub a écrit :


Sinon pour ta question t'a essayé Character.LINE_SEPARATOR ?


 
la voila la reponse.
 
 
non mais serieux , tout le monde n'a pas forcement envie de se balader avec une lib de 500k juste pour faire des logs simple...

Reply

Marsh Posté le 14-06-2004 à 00:06:36    

ben là c une API standard dans la 1.4...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 14-06-2004 à 00:48:21    

oui mais y'en a qui sont encore a la 1.3 [:spamafote]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed