L'efficienza non è molto diversa a causa delle ottimizzazioni nei moderni compilatori Java, ma non guadagna molta flessibilità. L'unica cosa che ti consente di fare è disattivare la stampa in una posizione anziché in molte.
Sarebbe meglio servire delegando a un framework di registrazione. Java ha registrazione integrata , e ci sono altri framework come Log4j .
Usando un framework di registrazione, acquisisci diverse abilità che il tuo codice attuale non possiede:
-
È possibile accedere a flussi arbitrari: standard, errore standard, un file, un socket, ecc.
-
Hai livelli diagnostici aggiuntivi. Piuttosto che on o off puoi avere errori, avvertimenti, informazioni, ecc. E puoi controllare quali livelli diagnostici vengono emessi.
-
I messaggi di registrazione possono includere informazioni aggiuntive come la classe e il numero di riga in cui si è verificato il log (se si passa un Throwable
) e la data e l'ora.
-
Tutta la configurazione viene eseguita tramite, beh, configurazione, non codice. Piuttosto che commentare una riga di codice e ricostruire, puoi modificare un file XML o di proprietà e il gioco è fatto.
Una volta che hai imparato a utilizzare un framework di registrazione, è altrettanto facile che usare System.out.println()
ma ci sono molte più possibilità se ne hai bisogno.
Infine, un framework di registrazione richiede in genere una piccola quantità di inizializzazione, ma aggiunge poco o nessun notevole overhead al processo in esecuzione quando si richiama la sua funzionalità.