2012-08-12 15 views
7

Sto facendo un'applicazione Java, che utilizzerà l'interfaccia utente swing. Chiederà all'utente di specificare alcune impostazioni, compilando i moduli, quindi elaborarli e generare alcuni file nella directory ./output/.Uscita informazioni di debug nella console

Durante il processo di sviluppo, mi piacerebbe produrre alcune informazioni tecniche in console, usando il metodo System.out.println().

Devo rimuovere tutte queste uscite della console quando avrò finito lo sviluppo?

Se sì, qual è il modo migliore per visualizzare le informazioni di debug durante il processo di sviluppo per rimuoverlo facilmente prima della produzione?

Forse dovrei usare solo i test JUnit per il debug? Ho appena iniziato, quindi ho una vaga idea delle sue capacità.

+2

[Log4J 2] (http://logging.apache.org/log4j/2.x/) ha lo scopo di aiutarti in questo, molte delle funzionalità con cui è compresso, che puoi vedere a quel link :-) –

+0

In alcuni casi, la registrazione Java potrebbe essere migliore –

+0

@ Siorus Puoi spiegare brevemente? E cosa intendi per 'registrazione Java '? –

risposta

13

Se non avete intenzione di utilizzare un framework di debug specializzata potrebbe essere facile come:

if (Debugger.isEnabled()) 
    Debugger.log("message here"); 

La classe Debugger racchiude solo le chiamate println (come questo):

public class Debugger{ 
    public static boolean isEnabled(){ 
     return true; 
    } 

    public static void log(Object o){ 
     System.out.println(o.toString()); 
    } 
} 

In questo modo quando vuoi andare in produzione, o puoi modificare il comportamento del tuo debug (o disabilitarlo) cambiando una riga in una classe.

+1

Grazie , Probabilmente tenterò meglio qualche framework di debug, come hai detto. :) –

6

Un piccolo miglioramento alla classe Debugger per rendere il cliente un po 'più pulito:

public static void log(Object o){ 
    if(Debugger.isEnabled()) { 
     System.out.println(o.toString()); 
    }   
} 

Poi il lato client avrebbe bisogno di una sola riga:

Debugger.log("....") 
+0

Questa non è una soluzione migliore secondo me. Spesso le stringhe dei messaggi di debug richiedono formattazione e questo richiede tempo CPU anche quando il debug è disabilitato. Il controllo del debug all'esterno della chiamata a 'log() 'lo salva (il ramo si verifica comunque). In alternativa, puoi avere un metodo 'log()' che avvolge la formattazione della stringa. – Yuval