Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Comportamento Logging

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    20

    Comportamento Logging

    Salve a tutti,
    vorrei sapere se il comportamento che ho riscontrato è corretto oppure ho fatto qualche errore!

    Allora vorrei utilizzare le API del logging di java salvando i miei messaggi su file!
    Dato che non mi interessa salvare molte informazioni (ma solo es. l'orario) mi son creato un mio Formatter

    codice:
    private class MyFormatter extends Formatter {
      //Override del metodo astratto
      public synchronized String format(LogRecord record) 
      {
      // Creo stringa con "Data: Messaggio"
      }
    }
    Inoltre il medoto dedicato alla stampa del messaggio è il seguente:

    codice:
    String logPath = "./Output//Receiver.log", logLevel = "ALL";
    loggerReceiver = Logger.getLogger("PrintMessage-Receiver");
    
    Handler handlerReceiver = null;
    try {
      handlerReceiver = new FileHandler(logPath, true);
     }
    catch (Exception l_Ex)
    { return false; }
    
    Formatter fmt = new MyFormatter();
    handlerReceiver.setFormatter(fmt);
    
    loggerReceiver.addHandler(handlerReceiver);
    loggerReceiver.setLevel(Level.parse(logLevel));
    loggerReceiver.log(Level.SEVERE, "Ciao");
    In effetti in questo modo salva su file correttamente anche secondo il formato da me impostato con la classe MyFormatter!

    Ciò che succede è che su console (cioè la System.out) mi stampa il messaggio secondo il formatter SimpleFormatter e no secondo il mio Formatter!
    E' nomale questo funzionamento o mi son perso qualche settaggio!
    Se questo funzionamento è normale, è possibile disabilitare l'output su console (mi crea un bel po' di confusione)

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Comportamento Logging

    Originariamente inviato da Promo
    Ciò che succede è che su console (cioè la System.out) mi stampa il messaggio secondo il formatter SimpleFormatter e no secondo il mio Formatter!
    E' nomale questo funzionamento o mi son perso qualche settaggio!
    C'è anche il "root" Logger che per default usa un ConsoleHandler.
    Rimuovi gli handler dal "root" logger oppure in alternativa (sarebbe più semplice) invoca setUseParentHandlers(false) sul "tuo" logger, così non passa più nulla al root.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    20
    Grazie per la risposta super veloce

    Ho fatto setUseParentHandlers(false) e ho aggiunto un mio ConsoleHandler con livello ALL (nel percorso [JRE]/lib/logging.properties. ho visto che le ConsoleHandler hanno di default un livello INFO) e con il mio Formatter e funziona correttamente!

    Grazie ancora

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.