IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Création de Logs votre avis


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 50
    Par défaut Création de Logs votre avis
    Bonjour j'ai créer,

    un petit bout de code pour ajouter du texte automatiquement dans mes fichiers Logs. cependant je créer a chaque fois un nouveau FileOutPutStream et un nouveau InputStream. Est-ce rentable si on doit ecrire 40 à 50 lignes dans un fichiers ??? j'entend par là la création de ces Logs ne vas-t-elle pas ralentire le traitement avec cette méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    	public static void addText(String text, String path) {
     
    		FileOutputStream fos = null;
     
    		PrintStream ps;
     
    		try {
    			fos = new FileOutputStream(path, true);
    		} catch (FileNotFoundException e1) {
    			// TODO Bloc catch auto-généré
    			e1.printStackTrace();
    		}
     
    		ps = new PrintStream(fos);
     
    		ps.println(text);
     
    		ps.close();
     
    		try {
    			fos.close();
    		} catch (IOException e) {
    			// TODO Bloc catch auto-généré
    			e.printStackTrace();
    		}
     
    	}

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Inutile de réinventer la poudre...
    Regarde plutôt Log4j, c'est très sympa pour tout ce qui est des logs...

    http://logging.apache.org/log4j/docs/download.html

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Sinon j'opterais plustot pour un fichier ouvert en permanance, mais pour eviter les pertes de données lors d'un arret brutal, faut penser a vider le buffer apres chaques ecriture ....

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par OButterlin
    Inutile de réinventer la poudre...
    Regarde plutôt Log4j, c'est très sympa pour tout ce qui est des logs...

    http://logging.apache.org/log4j/docs/download.html

    A+
    A partir de java 5 tu as la classe Logger dans l'API.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par ®om
    A partir de java 5 tu as la classe Logger dans l'API.
    Logger est disponible depuis Java 1.4 :



    Citation Envoyé par matt8-5
    cependant je créer a chaque fois un nouveau FileOutPutStream et un nouveau InputStream. Est-ce rentable si on doit ecrire 40 à 50 lignes dans un fichiers ???
    Cela risque surtout d'être assez couteux (si tu écris 10 lignes tu ouvriras/fermera 10 fois le fichiers), sans compter que ce n'est pas du tout sécurisé en multithread (si tu appelles ta méthode depuis plusieurs threads différents, tu risque de te retrouver avec le même fichier ouvert plusieurs fois ce qui peut poser des problèmes).


    De plus ton code possède quelques défauts :
    • Tu gère mal tes exceptions (si une exception survient lors de l'ouverture du fichier, tu écris quand même dedans ce qui provoque un NullPointerException). Il faut englober tout le traitement dans un try/catch et non pas utiliser plusieurs try/catch...
    • Il est préférable d'utiliser un bloc finally pour la fermeture des flux (pour être sûr de le fermer quoi qu'il arrive)


    a++

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/07/2013, 10h55
  2. Réponses: 6
    Dernier message: 12/02/2010, 16h56
  3. [VB6] Création d'un log : votre expérience m'intéresse
    Par Phifi dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/08/2006, 16h46
  4. [MySQL] Création d'un forum, besoin de votre avis
    Par swf_err2str dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/04/2006, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo