Si eres un desarrollador ASP.NET, es muy probable que hayas oído hablar de la función ELMAH proyecto. En caso de que no lo haya hecho, ELMAH (Error Logging Modules and Handlers) es una serie de módulos HTTP y un controlador HTTP que se pueden añadir a sus aplicaciones web ASP.NET con el fin de realizar un seguimiento de las excepciones no controladas. ELMAH proporciona acceso para ver estos errores a través de una consola web, notificaciones por correo electrónico y un canal RSS.

Entonces, ¿dónde almacena ELMAH todas estas excepciones a medida que se producen? La respuesta, afortunadamente, es que es configurable. ELMAH viene de fábrica con proveedores para varias bases de datos relacionales (¿te acuerdas de ellas?), un almacén en memoria y archivos XML. Aunque no viene en la caja, ahora puedes añadir Couchbase a la lista de registros de entrada disponibles. Ayer publiqué el proveedor de ELMAH para Couchbase en Couchbase Labs. https://github.com/couchbaselabs/elmah-couchbase.

¿Por qué usar Couchbase para ELMAH? Si alguna parte de tu aplicación de repente empieza a lanzar excepciones, ¿quieres estar atascando tu RDBMS con escrituras o prefieres pasar la responsabilidad del logging a una base de datos que pueda manejar las excepciones? decenas si no cientos de miles de operaciones por segundo en un solo nodo. OK, con suerte tu aplicación no va a necesitar ese tipo de rendimiento para registrar excepciones. Pero si ese día llega...

Para empezar con el nuevo proveedor, necesitarás fist para instalar ELMAH (prueba el paquete Nuget que incluye la configuración, no el núcleo). Para más información sobre cómo instalar ELMAH. Una vez instalado, coge el código fuente de Couchbase ELMAH Log Entry de GitHub u obtén la última versión de Paquete Nuget. Configure ELMAH para utilizar el nuevo registro de errores en Web.config.

<elmah>
<errorlog couchbaseconfigsection=" type="Elmah.Couchbase.CouchbaseErrorLog, Elmah.Couchbase" />
>
En el lado del servidor, necesitarás usar Couchbase Server 2.0. Puedes probar cualquiera de las últimas versiones del servidor 2.0 o la Developer Preview 4 disponible en el sitio web de Couchbase página de descargas. Una vez instalado, necesitarás crear una vista llamada "by_date" en un documento de diseño llamado "errors". El código para la vista también está disponible en el código fuente en un archivo llamado "CouchbaseErrorLog.json". Para obtener información sobre la creación de vistas, consulta la guía de la consola web para 2.0.
función (doc) {
si (doc.Excepción) {
emite(doc.Tiempo, null);
}
}
Después de crear la vista y publicarla como vista de producción, estarás listo para usar Couchbase con ELMAH. Causa una excepción no manejada en tu aplicación (un 404 funciona bien) y solicita el recurso "elmah.axd" desde la raíz de tu sitio (es decir, http://localhost:34636/elmah.axd). Debería ver una lista de errores como la siguiente:
elmah
Como recordatorio, el Registro de Errores ELMAH de Couchbase es un proyecto de Couchbase Labs y no un proyecto oficial de Couchbase. Eres libre de usarlo en tu aplicación, pero el soporte y mantenimiento son limitados. Si encuentras problemas, por favor siéntete libre de hacer un fork y enviar un pull request o hacer preguntas en los foros.

Autor

Publicado por John Zablocki, Desarrollador NET. Desarrollador SDK, Couchbase

John Zablocki es desarrollador de NET. SDK en Couchbase. John es también el organizador de Beantown ALT.NET y antiguo profesor adjunto en la Universidad de Fairfield. También puedes consultar el libro en Amazon llamado "Couchbase Essentials" que explica cómo instalar y configurar Couchbase Server.

3 Comentarios

  1. Estoy teniendo algunos problemas para poner esto en marcha. Estoy viendo el siguiente error:

    \La operación no es válida debido al estado actual del objeto" cuando se itera sobre el resultado de GetView en GetErrors().

    Mi problema parece ser el mismo que uno ya publicado en los foros de couchbase (sin respuesta):

    http://www.couchbase.com/forum

    ¿Alguien puede aconsejarme?

  2. Pregunta duplicada - no se puede borrar.

  3. Anthony -

    ¿Qué versión del SDK está utilizando? ¿Puedes intentar actualizar la versión a la última (1.3.7 en el momento de escribir esto) y ver qué pasa?

    Además, tenemos un foro de preguntas y respuestas (http://www.couchbase.com/commu... y/o puede utilizar Jira (http://www.couchbase.com/issue... si crees que has encontrado un error.

    Gracias,

    Jeff

Dejar una respuesta