Se você é um desenvolvedor ASP.NET, há uma boa chance de já ter ouvido falar do ELMAH projeto. Caso ainda não o tenha feito, o ELMAH (Error Logging Modules and Handlers) é uma série de módulos HTTP e um manipulador HTTP que podem ser adicionados aos aplicativos Web ASP.NET com o objetivo de rastrear exceções não tratadas. O ELMAH fornece acesso para visualizar esses erros por meio de um console da Web, notificações por e-mail e um feed RSS.

Então, onde o ELMAH armazena todas essas exceções à medida que elas são geradas? Felizmente, a resposta é que isso é configurável. O ELMAH já vem com provedores para vários bancos de dados relacionais (lembra-se deles?), um armazenamento na memória e arquivos XML. Embora não esteja na caixa, agora é possível adicionar o Couchbase à lista de registros de entrada disponíveis. Ontem, publiquei o provedor do ELMAH Couchbase no Couchbase Labs - https://github.com/couchbaselabs/elmah-couchbase.

Por que usar o Couchbase para o ELMAH? Se alguma parte do seu aplicativo começar a lançar exceções repentinamente, você quer entupir seu RDBMS sobrecarregado com gravações ou prefere transferir a responsabilidade de registro para um banco de dados que possa lidar com dezenas - se não centenas - de milhares de operações por segundo em um único nó. OK, esperamos que seu aplicativo não precise desse tipo de taxa de transferência para registrar exceções. Mas se esse dia chegar...

Para começar a usar o novo provedor, você precisará instalar o ELMAH (tente o pacote Nuget que inclui a configuração, não o núcleo). Para obter mais informações sobre como configurar o ELMAH. Depois de instalado, pegue o código-fonte da entrada de registro do Couchbase ELMAH no GitHub ou obtenha a versão mais recente do Pacote Nuget. Configure o ELMAH para usar o novo registro de erros no Web.config.

<elmah>
<errorlog couchbaseconfigsection=" type="Elmah.Couchbase.CouchbaseErrorLog, Elmah.Couchbase" />
>
No lado do servidor, você precisará usar o Couchbase Server 2.0. Você pode experimentar qualquer uma das versões mais recentes do servidor 2.0 ou o Developer Preview 4 disponível no site do Couchbase página de downloads. Depois de instalado, você precisará criar uma exibição chamada "by_date" em um documento de design chamado "errors". O código para a exibição também está disponível no código-fonte em um arquivo chamado "CouchbaseErrorLog.json". Para obter informações sobre a criação de exibições, consulte o guia do console da Web para a versão 2.0.
função (doc) {
se (doc.Exceção) {
emitir(doc.Tempo, nulo);
}
}
Depois de criar a exibição e publicá-la como uma exibição de produção, você estará configurado e pronto para usar o Couchbase com o ELMAH. Cause uma exceção não tratada em seu aplicativo (um 404 funciona bem) e solicite o recurso "elmah.axd" na raiz do seu site (ou seja, http://localhost:34636/elmah.axd). Você deverá ver uma lista de erros como a abaixo:
elmah
Como lembrete, o registro de erros do Couchbase ELMAH é um projeto do Couchbase Labs e não um projeto oficial do Couchbase. Você pode usá-lo livremente em seu aplicativo, mas o suporte e a manutenção são limitados. Se você encontrar problemas, sinta-se à vontade para fazer um fork e enviar uma solicitação pull ou fazer perguntas nos fóruns.

Autor

Postado por John Zablocki, NET. SDK, Couchbase

John Zablocki é um desenvolvedor NET. SDK Developer na Couchbase. John também é o organizador do Beantown ALT.NET e ex-adjunto da Fairfield University. Você também pode conferir o livro na Amazon chamado "Couchbase Essentials", que explica como instalar e configurar o Couchbase Server.

3 Comentários

  1. Estou tendo alguns problemas para começar a trabalhar com isso. Estou vendo o seguinte erro:

    \"A operação não é válida devido ao estado atual do objeto\" ao iterar sobre o resultado de GetView em GetErrors().

    Meu problema parece ser o mesmo que já foi publicado nos fóruns do couchbase (sem resposta):

    http://www.couchbase.com/forum

    Alguém pode me orientar?

  2. Pergunta duplicada - não é possível excluir.

  3. Anthony -

    Qual versão do SDK você está usando? Talvez você possa tentar atualizar a versão para a mais recente (1.3.7 no momento da redação deste artigo) e ver o que acontece?

    Além disso, temos um fórum de perguntas e respostas (http://www.couchbase.com/commu... e/ou você pode usar o Jira (http://www.couchbase.com/issue... se você acha que pode ter encontrado um bug.

    Obrigado,

    Jeff

Deixar uma resposta