Domanda

Ho alcuni file jar che verranno distribuiti ai client che utilizzano log4j per la registrazione. La mia domanda è: devo includere una configurazione log4j.xml nel file jar o fare in modo che il client ne fornisca una se desidera effettuare la registrazione?

La mia sensazione è di lasciare il file di configurazione log4j.xml fuori dai barattoli client, poiché i file jar di Apache vengono tutti con log4j logging, ma senza log4j.xml.

È stato utile?

Soluzione

Sì, lascialo fuori. È un fastidio assoluto quando il tuo file di configurazione log4j viene ignorato perché una delle 60 librerie di terze parti della tua app ne contiene una propria.

Altri suggerimenti

La cosa positiva di log4j nel tuo caso è che il tuo vaso non dovrebbe preoccuparsene. Il caso d'uso di base di log4j è:

  1. Ottieni un oggetto logger per la classe corrente
  2. Chiama uno dei metodi su quel logger, come debug (" some message ");

Se i vasetti che stai spedendo devono essere utilizzati da un'applicazione più grande, idealmente il tuo codice eseguirà solo i due passaggi sopra elencati. In questo modo, il codice otterrà semplicemente gli oggetti logger dall'istanza log4j già configurata nell'applicazione del client. Il tuo codice di produzione viene quindi disaccoppiato dal dover sapere come configurare log4j.

Qualsiasi registrazione che è necessario vedere per lo sviluppo dei barattoli può essere realizzata configurando un'istanza log4j nei metodi setUp () di unit test o qualcosa di simile che non verrà raggruppato con il codice di produzione che va al client.

Vorrei inserire una configurazione predefinita di log4j che ti aspetti sarà utile per i tuoi clienti nella documentazione. In questo modo le persone interessate possono vedere quali opzioni di registrazione hai (di solito alcune classi hanno messaggi di registro più interessanti, dal punto di vista dell'utente). Lo trovo fastidioso quando ho una lib di terze parti che usa log4j e non ha documentazione, e ci sono messaggi di registro che riempiono il mio schermo e devo provare a capire come abilitare o sopprimere determinati messaggi di registro.

Se si utilizza log4j nella propria applicazione, lo si include nel progetto. Se non lo sei, allora perché dovresti metterlo lì? Che cosa succede se il client A vuole log4j versione 1.2 e il client B vuole log4j versione 1.3.

Lascia che decidano ciò di cui hanno bisogno per i loro progetti e si preoccupano di ciò di cui hai bisogno per i tuoi.

Vorrei aggiungere l'xml di configurazione e caricarlo con le istruzioni per l'utente che mostrano diverse configurazioni e opzioni. Ciò renderà più facile per loro o per il supporto abilitare la registrazione addizionale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top