Vale ancora la pena aggiungere la libreria log4j a un progetto Java 5 solo per accedere, diciamo alcune eccezioni a un file con alcune impostazioni di rollover. O lo farà anche la funzione standard util.logging?
Cosa ne pensi?
Vale ancora la pena aggiungere la libreria log4j a un progetto Java 5 solo per accedere, diciamo alcune eccezioni a un file con alcune impostazioni di rollover. O lo farà anche la funzione standard util.logging?
Cosa ne pensi?
Risposte:
Direi che probabilmente stai bene con util.logging per le esigenze che descrivi.
Per un buon albero decisionale, dai un'occhiata a Log4j vs java.util.logging
Domanda 1: Prevedete la necessità di qualcuno dei gestori intelligenti che Log4j non ha JUL, come SMTPHandler, NTEventLogHandler o uno dei FileHandlers molto convenienti?
Domanda due: ti vedi voler cambiare frequentemente il formato dell'output di registrazione? Avrai bisogno di un modo semplice e flessibile per farlo? In altre parole, hai bisogno del PatternLayout di Log4j?
Domanda tre: Prevedi una necessità definitiva per la capacità di modificare configurazioni di registrazione complesse nelle tue applicazioni, dopo che sono state compilate e distribuite in un ambiente di produzione? La tua configurazione suona come "I messaggi gravi di questa classe vengono inviati via e-mail al ragazzo del supporto; i messaggi gravi di un sottoinsieme di classi vengono registrati in un demone syslog sul nostro server; vengono registrati i messaggi di avviso di un altro sottoinsieme di classi a un file sull'unità di rete A; e quindi tutti i messaggi provenienti da ogni parte vengono registrati in un file sull'unità di rete B "? E ti vedi modificare ogni due giorni?
Se puoi rispondere di si a una qualsiasi delle domande precedenti, vai con Log4j. Se si risponde a un preciso no a tutti, JUL sarà più che adeguato ed è convenientemente già incluso nell'SDK.
Detto questo, praticamente ogni progetto in questi giorni sembra finire compreso log4j, anche se solo perché viene utilizzato da qualche altra libreria.
Ti consiglio di utilizzare la Simple Logging Facade per Java (SLF4J). Supporta diversi provider che includono Log4J e possono essere utilizzati in sostituzione di Apache Commons Logging.
Log4j è in circolazione da molto tempo e funziona molto bene. Non ho studi scientifici a supporto, ma sulla base di ciò che ho visto su un gran numero di clienti, è facilmente il framework di registrazione che vedo usato più di ogni altro. È in circolazione da molto tempo e non è stato sostituito dal Next Big Logging Framework, che dice qualcosa.
È semplicissimo da configurare e facile da apprendere le appendici di base (output). Sono disponibili interi appendici host, tra cui:
Più altri. Non è difficile nemmeno scrivere il proprio appender. Inoltre, c'è una grande flessibilità in ciascuna appendice che ti consente di controllare in modo specifico ciò che viene prodotto nel tuo registro.
Una nota, ho avuto una serie di problemi con il classloader quando ho usato la registrazione di Apache Commons oltre a log4j. Era solo per un'applicazione specifica, ma ho trovato più semplice usare solo log4j, piuttosto che avere la flessibilità offerta quando si utilizza un livello di astrazione come la registrazione dei beni comuni.
Vedi questo articolo per maggiori dettagli :
In bocca al lupo!
java.util.logging offre un pacchetto di registrazione completo senza il bagaglio in eccesso fornito da alcuni degli altri.
log4j è un pacchetto molto più bello in generale e non ha alcuni dei singhiozzi che contiene java.util.logging. Secondo, usare direttamente log4j è più semplice che usare la registrazione dei beni comuni.
Raccomando di usare Apache Commmons Logging come interfaccia di registrazione. In questo modo hai la flessibilità di cambiare le implementazioni di registrazione ogni volta che vuoi senza richiedere modifiche al codice da parte tua.