Come eseguire l'accesso in C # con Log4net

Quando scrivi codice del computer in C #, è una buona idea includere il codice di registrazione. In questo modo, quando qualcosa va storto, sai da dove iniziare a cercare. Il mondo Java lo fa da anni. A tale scopo è possibile utilizzare log4net. Fa parte di Apache log4j 2, un popolare framework di registrazione open source.

Questo non è l'unico framework di registrazione .NET; ci sono molti. comunque, il Apache il nome è attendibile e il framework di registrazione Java originale esiste da più di 15 anni.

Perché usare un framework di registrazione Log4net?

Quando un'applicazione o un server si arresta in modo anomalo, ti viene chiesto perché. È stato un errore hardware, malware, forse un attacco Denial of Service o una strana combinazione di chiavi che riesce a bypassare tutti i controlli del codice? Solo che non lo sai.

Devi scoprire perché si è verificato un arresto anomalo in modo che possa essere corretto. Con la registrazione abilitata, potresti essere in grado di vedere perché è successo.

instagram viewer

Iniziare

Scarica il file log4net dal sito Web log4net di Apache. Verificare l'integrità dei file scaricati utilizzando la firma PGP o i checksum MD5. I checksum non sono indicatori forti quanto la firma PGP.

Utilizzando Log4net

Log4net supporta sette livelli di registrazione da nessuno a tutti con priorità crescente. Questi sono:

  1. OFF
  2. FATALE
  3. ERRORE
  4. AVVISARE
  5. INFORMAZIONI
  6. DEBUG
  7. TUTTI

I livelli più alti includono tutti quelli inferiori. Durante il debug, utilizzando DEBUG mostra tutto, ma in produzione, potresti essere interessato solo a FATAL. Questa scelta può essere effettuata a livello di componente a livello di codice o in un file di configurazione XML.

Registratori e appendici

Per flessibilità, log4net utilizza logger, appendici e layout. Un logger è un oggetto che controlla la registrazione ed è un'implementazione dell'interfaccia ILog, che specifica cinque metodi booleani: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled e IsFatalEnabled. Specifica inoltre i cinque metodi — Debug, Info, Warn, Error eFatal — insieme a sovraccarichi e cinque versioni di stringhe formattate. Puoi vedere l'interfaccia ILog completa nel manuale online di log4net.

Ai logger viene assegnato uno dei livelli ma non TUTTO o DISATTIVATO, solo gli altri cinque.

Le appendici controllano dove va la registrazione. Può trovarsi in un database, in un buffer in memoria, nella console, in un host remoto, in un file di testo con log a rotazione, nel registro eventi di Windows o persino tramite e-mail tramite SMTP. Ci sono 22 appendici in tutto e possono essere combinati in modo da avere molte scelte. Le appendici vengono aggiunte (da qui il nome) a un logger.

Le appendici filtrano gli eventi abbinando sottostringhe, livello evento, intervallo di livelli e inizio del nome del logger.

layout

Infine, ci sono sette layout che possono essere associati a un Appender. Questi controllano il modo in cui viene registrato il messaggio dell'evento e possono includere testo di eccezione, layout di data e ora e Elementi XML.

Configurazione con XML

Sebbene la configurazione possa essere eseguita a livello di codice, può anche essere eseguita con i file di configurazione XML. Perché preferisci i file di configurazione rispetto alle modifiche al codice? Semplice, è molto più facile avere un tecnico di supporto che apporta una modifica a un file di configurazione piuttosto che un programmatore per cambiare codice, testare e ridistribuire una nuova versione. Quindi i file di configurazione sono la strada da percorrere. Il percorso più semplice possibile è aggiungere App.config al progetto, come mostrato nell'esempio seguente:

1.0utf-8





















La documentazione online di log4net spiega tutti i campi del file di configurazione. Dopo aver configurato App.config, aggiungi usando log4net e questa riga:

[assembly: log4net. Config. XmlConfigurator (Watch = true)]

Inoltre, il logger effettivo deve essere recuperato con una chiamata a LogManager. GetLogger (...). Il GetLogger viene generalmente chiamato con il tipo di (classe) in cui è utilizzato, ma questa chiamata di funzione recupera anche che:

Sistema. Riflessione. MethodBase. GetCurrentMethod (). DeclaringType

Questo esempio mostra entrambi con uno commentato, quindi puoi scegliere.

utilizzando log4net;
[assembly: log4net. Config. XmlConfigurator (Watch = true)]
namespace gvmake
{
programma di classe
{
privato statico di sola lettura ILog log = LogManager. GetLogger (Sistema. Riflessione. MethodBase. GetCurrentMethod
() .DeclaringType);
// statico privato in sola lettura ILog log = LogManager. GetLogger (typeof (Program));
void statico Main (string [] args)
{
log. Debug ("Avvio applicazione");
}
}
}

instagram story viewer