ecriture dans un fichier - Java - Programmation
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, ...
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?
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...
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
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 ....
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();
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 ?
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)
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 ....
;-)
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...
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
Marsh Posté le 13-06-2004 à 20:13:08
Jubijub a écrit : |
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...
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.