.NET

15 dez, 2014

ASP .NET – Usando os recursos do Logging com o Application Blocks

Publicidade

Gravar informações de log de uma aplicação é um recurso básico e fundamental para uma aplicação robusta, seja por razões de auditoria, segurança, rastreamento ou apenas informação. Você pode criar a sua própria aplicação para registrar sua atividade em um log, mas a menos que a situação realmente exija esse trabalho, você pode usar os recursos do Application Blocks.

A Microsoft criou a Microsoft Enterprise Library, que pode ser entendida como uma biblioteca desenvolvida pelo time de padrões e práticas da Microsoft com o objetivo de solucionar os problemas comuns que os desenvolvedores encontram nos projetos de software. Necessidades como tratamento de exceções, validação, logging e instrumentação (entre outras) costumam se repetir frequentemente no desenvolvimento de aplicações corporativas. A Microsoft Enterprise Library endereça estes cenários através de componentes reutilizáveis chamados de Application Blocks.

Podemos pensar de maneira didática na Microsoft Enterprise Library como blocos de aplicações ou componentes modulares, que podem ser reusados em projetos de software de acordo com a necessidade de criar projetos com bom padrão de código, instalação e configuração. Desta forma, a Enterprise Library oferece um conjunto de bibliotecas extensíveis para construir aplicações robustas e escaláveis, onde temos blocos com padrões de codificação para acesso a dados, criptografia, tratamento de exceções, segurança, validação, logging, caching e política de injection.

Ora, se é assim, não vamos reinventar a roda. Vamos usar os os recursos do Application Blocks em nossa aplicação para realizar o logging.

Neste artigo, eu mostro como usar os recursos de logging da Application Blocks em uma aplicação ASP .NET usando a linguagem C#.

Recursos usados:

  • Microsoft VIsual Studio 2013 Express for web
  • Microsoft Application Blocks 4.0

Criando o projeto no Visual Studio 2013 Express for web

Abra o VS Express 2013 for web e clique em New Project. A seguir, selecione a linguagem Visual C# e o template ASP .NET Web Application.

Informe o nome AspNet_Logging_ApplicationBlocks e clique no botão OK.

aspn_logapb1

A seguir, selecione o template Empty e clique no botão OK.

aspn_logapb2

No menu PROJECT clique em Add New Item. Depois, selecione o template Web Form e informe o nome Default.aspx; depois clique no botão Add.

A seguir, inclua um botão de comando(Button) a partir da Toolbox na página Default.aspx, informando o nome btnLogging e com texto: Registrar Atividade no Log:

aspn_logapb3

Baixando a Microsoft Application Blocks – Enterprise Library 4.0

Vamos baixar a Enterprise Library 4.0 a partir do seguinte link: Enterprise Library 4.0 – May 2008. Após baixar o arquivo, instale-o em sua máquina. Geralmente ele é instalado na pasta: \Program Files (x86)\Microsoft Enterprise Library 4.0 – May 2008.

Após a instalação, localize a pasta e clique duas vezes no aplicativo EntLibConfig:

aspn_logapb4

Será aberta a janela Enterprise LIbrary Configuration. Clique no ícone para abrir um arquivo:

aspn_logapb5

Localize a pasta onde você salvou a sua aplicação ASP .NET e selecione o arquivo web.config:

aspn_logapb6

Clique com o botão direito sobre a sua aplicação e no menu suspenso clique em New -> Logging Application Block:

aspn_logapb7

Por padrão, o utilitário de log registra o log no log de eventos. Então, você verá em Trace Listeners uma entrada criada para o EventLog já adicionada.

Clique em Formatted EventLog TraceListener e informe o nome da sua máquina. No meu caso, a máquina se chama Ma-PC.

aspn_logapb8

Clique no ícone para salvar as configurações feitas e encerrar esta etapa.

Definindo a referência e o código para Logging

Agora que já temos a configuração definida para usar a ferramenta logging enterprise da Application Blocks, vamos definir o código na página Default.aspx.

Primeiro temos que incluir uma referência as DLL’s do logging. Para isso, clique no menu PROJECT e a seguir em Add Reference e localize a pasta onde instalou a Enterprise LIbrary e selecione as DLLs de Logging:

aspn_logapb9

Após selecionar, clique no botão OK:

aspn_logapba

Agora podemos incluir uma referência ao namespace do Logging na página Default.aspx:

using Microsoft.Practices.EnterpriseLibrary.Logging;

E a seguir, no evento Click do botão de comando – Registrar Atividade no Log, inclua o código abaixo:

using System;
using Microsoft.Practices.EnterpriseLibrary.Logging;
namespace AspNet_Logging_ApplicationBlocks
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {}
        protected void btnLogging_Click(object sender, EventArgs e)
        {
            LogEntry oLogEntrada = new LogEntry();
            oLogEntrada.Message = "Teste de registro no log de evento usando Application Blocks Logging";
            oLogEntrada.Categories.Add("MacorattiTeste_Logging");
            Logger.Write(oLogEntrada);
        }
    }
}

Neste código criamos uma instância da classe LogEntry e definimos a mensagem a ser gravada no log.

Ao final, usamos o método Write() para escrever a mensagem no log.

Agora execute o projeto e clique algumas vezes no botão de comando da página:

aspn_logapbb

Ao fazer isso, a mensagem que definimos será gravada no visualizador de eventos.

Para verificar o log de eventos e ver a nossa mensagem gravada, clique no botão Iniciar do Windows e digite eventvwr e tecle ENTER.

aspn_logapbc

Vemos assim o log de eventos exibindo as mensagens.

Pegue o projeto completo aqui: AspNet_Logging_ApplicationBlocks.zip