Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Java] Problema duplicazione file

    ho questo metodo per la crezione di file di log:
    codice:
        public void createLog(String message) throws SecurityException, IOException {
            Logger logger = Logger.getLogger("BookLog");
            FileHandler fh = new FileHandler(OsPath.osPath(booklog), true);
            logger.addHandler(fh);
            logger.setLevel(Level.ALL);
            SimpleFormatter formatter = new SimpleFormatter();
            fh.setFormatter(formatter);
            logger.log(Level.ALL, message);
        }
    questo metodo lo richiamo in vari eventi del form.
    il problema è che mi duplica i file.
    cioè, al primo evento crea il log e scrive il messaggio.
    al secondo evento però prima aggiunge il nuovo messaggio al file, e poi ne crea un altro rinominato.
    ecco, come posso evitare la crezione di tutti questi file??

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    suppongo che il tuo problema sia dovuto al fatto che per ogni messaggio crei un nuovo oggetto che gestisce il log. In genere il logger è un attributo statico che serve solo a farti scrivere una riga (il mex)

  3. #3
    di quale libreria di Logging parliamo?
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Originariamente inviato da valia
    suppongo che il tuo problema sia dovuto al fatto che per ogni messaggio crei un nuovo oggetto che gestisce il log. In genere il logger è un attributo statico che serve solo a farti scrivere una riga (il mex)
    si in effetti ogni volta che richiamo quel metodo creo un nuovo oggetto FileHandler.
    quindi mi suggerisci di seprare il momento della creazione del file da quello di scrittura del messaggio giusto?

    la libreria standard di java.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    prova, io di solito lo creo una sola volta e uso sempre quello

  6. #6
    ho fatto così:
    codice:
        private FileHandler fh;
        public void createLog() throws SecurityException, IOException {
            fh = new FileHandler(OsPath.osPath(booklog), true);
        }
    
        public void writeLog(String message) throws SecurityException, IOException {
            Logger logger = Logger.getLogger("BookLog");
            logger.addHandler(fh);
            logger.setLevel(Level.ALL);
            SimpleFormatter formatter = new SimpleFormatter();
            fh.setFormatter(formatter);
            logger.log(Level.ALL, message);
        }
    in apertura di finestra creo il file di log e poi richiamo i metodi per riempirlo.
    anche avviando più volte il programma il file nn viene sovrescritto e nn vengono create copie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.