2010-03-05 13 views
6

Sto usando log4Net per il mio accesso. Ho anche il seguente set ...Esiste una differenza tra log4net.Config.BasicConfigurator.Configure() e log4net.Config.XmlConfigurator.Configure()?

<log4net debug="true"> .. </> 

Ok, ora, quando ho il seguente codice

log4net.Config.BasicConfigurator.Configure(); 

Io non realmente ottenere qualsiasi informazioni in forma dettagliata interno-debug ma io vengo visualizzato tutto ciò che registro.

Ora, quando ho swap che il codice fuori e sostituirlo con questo:

log4net.Config.XmlConfigurator.Configure(); 

ho un sacco di interno-debug informazioni XML e qualsiasi cosa mi collego, viene visualizzato.

Allora, perché è questo? Qual è la differenza tra i due?

risposta

5

BasicConfigurator consente di configurare un solo appender, nella radice, e può solo accedere alla console. In realtà non ti fornisce alcuna informazione di debug perché lo non è in realtà nessuna informazione di debug.

XmlConfigurator fornisce l'insieme completo delle opzioni di configurazione di log4net - consultare la sezione Configuration del manuale per i dettagli. In realtà inizia con un esempio utilizzando BasicConfigurator e continua a mostrare tutte le proprietà aggiuntive che è possibile impostare nel codice XML.

In un'applicazione di produzione, probabilmente si desidera disporre di diversi logger con appendici diversi che utilizzano soglie e aree differenti; probabilmente riceverai informazioni di registro da diversi componenti diversi e non vuoi fare esattamente la stessa registrazione per ognuno di essi. Dovrai anche effettuare il log in posti diversi dalla console: file di registro, registro eventi, avvisi via e-mail, quel genere di cose. Puoi farlo solo con lo XmlConfigurator.

+0

AH. Gotcha. Al momento ho due appenders - ConsoleAppender e OutputDebugStringAppender - quindi userò XmlConfigurator. Aggiungerò anche altro per la produzione, anche in seguito. Grazie compagno. –

+4

In realtà è possibile configurare BasicConfigurator per accedere al file, vedere http://marc.info/?l=log4net-user&m=117974721929259&w=4 –

4

Sì, c'è. Se vuoi configurare i tuoi log in codice, non da una configurazione, allora dovresti usare BasicConfigurator. @Aaronaught Il tuo post è piuttosto vecchio, il che potrebbe spiegare il motivo della tua affermazione:

BasicConfigurator consente solo di configurare un appender, nella radice, e può solo accedere alla console.

.. è errato. Sto usando BasicConfigurator per la registrazione di eventi, file e database a marzo 2015. Supporta anche più di un appender per logger. Il mio log4net è configurato a livello di programmazione, non da un file di configurazione.

Problemi correlati