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.
<errorlog couchbaseconfigsection=“" type="Elmah.Couchbase.CouchbaseErrorLog, Elmah.Couchbase" />
>
se (doc.Exceção) {
emitir(doc.Tempo, nulo);
}
}

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?
Pergunta duplicada - não é possível excluir.
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