Como fazer logon em c # com o Log4net

Quando você escreve código de computador em C #, é uma boa ideia incluir código de log. Dessa forma, quando algo der errado, você sabe por onde começar a procurar. O mundo Java faz isso há anos. Você pode usar o log4net para essa finalidade. Faz parte do Apache log4j 2, uma estrutura popular de registro de código aberto.

Essa não é a única estrutura de log do .NET; Há muitos. No entanto, o Apache O nome é confiável e a estrutura de log Java original existe há mais de 15 anos.

Por que usar uma estrutura de log da Log4net?

Quando um aplicativo ou servidor falha, você fica se perguntando o porquê. Foi uma falha de hardware, malware, talvez um ataque de negação de serviço ou alguma combinação estranha de chaves que consegue ignorar todas as suas verificações de código? Você simplesmente não sabe.

Você precisa descobrir por que ocorreu uma falha para que ela possa ser corrigida. Com o log ativado, você poderá ver por que isso aconteceu.

Começando

Faça o download do arquivo log4net no site do Apache log4net. Verifique a integridade dos arquivos baixados usando a assinatura PGP ou as somas de verificação MD5. As somas de verificação não são indicadores tão fortes quanto a assinatura PGP.

instagram viewer

Usando o Log4net

O Log4net suporta sete níveis de registro, de nenhum para todos, aumentando a prioridade. Esses são:

  1. FORA
  2. FATAL
  3. ERRO
  4. ADVERTIR
  5. INFO
  6. DEPURAR
  7. TODOS

Os níveis mais altos incluem todos os mais baixos. Ao depurar, usando DEPURAR mostra tudo, mas na produção, você pode estar interessado apenas em FATAL. Essa escolha pode ser feita no nível do componente programaticamente ou em um arquivo XML Config.

Registradores e Anexadores

Para flexibilidade, o log4net usa registradores, anexadores e layouts. Um agente de log é um objeto que controla o log e é uma implementação da interface ILog, que especifica cinco métodos booleanos: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled e IsFatalEnabled. Também especifica os cinco métodos - Debug, Info, Warn, Error eFatal - junto com sobrecargas e cinco versões de string formatadas. Você pode ver a interface completa do ILog no manual on-line do log4net.

Os madeireiros recebem um dos níveis, mas não TODOS ou DESLIGADOS, apenas os outros cinco.

Os anexadores controlam para onde vai o log. Pode estar em um banco de dados, em um buffer de memória, no console, em um host remoto, em um arquivo de texto com logs contínuos, no Log de Eventos do Windows ou até mesmo por email via SMTP. Existem 22 anexos ao todo, e eles podem ser combinados para que você tenha muitas opções. Apêndices são anexados (daí o nome) a um criador de logs.

Os anexadores filtram eventos combinando substrings, nível de evento, intervalo de níveis e início do nome do criador de logs.

Layouts

Por fim, existem sete layouts que podem ser associados a um Appender. Eles controlam como a mensagem do evento é registrada e podem incluir texto de exceção, layouts de carimbo de data e hora e Elementos XML.

Configurando com XML

Embora a configuração possa ser feita programaticamente, também pode ser feita com arquivos de configuração XML. Por que você prefere arquivos de configuração ao invés de alterações de código? Simples, é muito mais fácil ter um suporte para fazer uma alteração em um arquivo de configuração do que ter um programador para alterar o código, testar e reimplementar uma nova versão. Portanto, os arquivos de configuração são o caminho a percorrer. O caminho mais simples possível é adicionar App.config ao seu projeto, conforme mostrado no exemplo abaixo:

1.0utf-8





















A documentação online do log4net explica todos os campos do arquivo de configuração. Após configurar o App.config, adicione usando log4net e esta linha:

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

Além disso, o logger real deve ser buscado com uma chamada para o LogManager. GetLogger (...). O GetLogger geralmente é chamado com o tipo (classe) em que é usado, mas essa chamada de função também busca:

Sistema. Reflexão. MethodBase. GetCurrentMethod (). DeclaringType

Este exemplo mostra ambos com um comentado, para que você possa escolher.

usando log4net;
[montagem: log4net. Config. XmlConfigurator (Watch = true)]
namespace gvmake
{
Programa de aula
{
estático privado somente leitura ILog log = LogManager. GetLogger (sistema. Reflexão. MethodBase. GetCurrentMethod
() .DeclaringType);
// privada estática readonly ILog log = LogManager. GetLogger (typeof (Program));
static void Main (string [] args)
{
registro. Depurar ("Aplicativo Iniciando");
}
}
}

instagram story viewer