{"id":1565,"date":"2014-12-16T19:24:17","date_gmt":"2014-12-16T19:24:16","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1565"},"modified":"2025-06-13T23:50:19","modified_gmt":"2025-06-14T06:50:19","slug":"couchbase-net-sdk-20-development-series-logging","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-development-series-logging\/","title":{"rendered":"Serie de desarrollo de Couchbase .NET SDK 2.0: Registro"},"content":{"rendered":"<p>*Nota: se puede encontrar la fuente <a href=\"https:\/\/packages.couchbase.com.s3.amazonaws.com\/clients\/net\/2.0\/dp1\/Couchbase.Net2.Examples.Configuration.zip\"><strong>aqu\u00ed<\/strong>.<\/a><\/p>\n<p>Aunque quiz\u00e1s sea una de las caracter\u00edsticas m\u00e1s aburridas de un SDK, el registro y la instrumentaci\u00f3n es probablemente una de las m\u00e1s valiosas en t\u00e9rminos de encontrar y aislar problemas y asegurar que tu aplicaci\u00f3n est\u00e1 funcionando como se esperaba. En este post, voy a discutir c\u00f3mo el nuevo SDK 2.0 de Couchbase maneja el logging, qu\u00e9 frameworks soporta y c\u00f3mo poner en marcha el logging usando el nuevo cliente.<\/p>\n<h2>Todos tenemos algo en com\u00fan...<\/h2>\n<p>Lo haremos cuando todos apoyemos a Apache <a href=\"https:\/\/github.com\/net-commons\/common-logging\">Registro com\u00fan<\/a> \u00a1lo hacemos! Bromas aparte, el nuevo cliente es compatible con una variedad de implementaciones de registro a trav\u00e9s de esta interfaz com\u00fan, por lo que sus opciones para un proveedor de registro incluyen:<\/p>\n<ul>\n<li><a href=\"https:\/\/logging.apache.org\/log4net\/\">Log4net<\/a><\/li>\n<li><a href=\"https:\/\/nlog-project.org\/\">NLog<\/a><\/li>\n<li><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/vstudio\/system.console\">System.Console<\/a><\/li>\n<li>A medida (rollo propio)<\/li>\n<li>Y <a href=\"https:\/\/netcommon.sourceforge.net\/docs\/2.1.0\/reference\/html\/ch01.html#logging-abstract\">otros<\/a>...<\/li>\n<\/ul>\n<p>Siempre y cuando la implementaci\u00f3n de registro que elijas sea compatible con la interfaz Common.Logging, \u00a1est\u00e1s listo!<\/p>\n<h2>C\u00f3mo empezar<\/h2>\n<p>El cliente se entrega con las dependencias para Common.Logging ya definidas y se incluyen en los archivos zip que contienen los binarios o se gestionan mediante el empaquetado Nuget.  Para habilitar el registro en System.Console por defecto, s\u00f3lo tiene que a\u00f1adir la siguiente configuraci\u00f3n a su App.Config o Web.Config:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\"><configuration><br \/>\u00a0 <configsections><br \/>\u00a0 \u00a0 <sectiongroup name=\"common\">\u00a0 \u00a0 \u00a0 <\/p>\n<section name=\"logging\" type=\"Common.Logging.ConfigurationSectionHandler, Common.Logging\" \/>\u00a0 \u00a0 <\/sectiongroup>\u00a0 <\/configsections><\/p>\n<p>\u00a0 <common><br \/>\u00a0 \u00a0 <logging><br \/>\u00a0 \u00a0 \u00a0 <factoryadapter type=\"Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging\"><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <arg key=\"level\" value=\"DEBUG\" \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <arg key=\"showLogName\" value=\"true\" \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <arg key=\"showDataTime\" value=\"true\" \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <arg key=\"dateTimeFormat\" value=\"yyyy\/MM\/dd HH:mm:ss:fff\" \/><br \/>\u00a0 \u00a0 \u00a0 <\/factoryadapter><br \/>\u00a0 \u00a0 <\/logging><br \/>\u00a0 <\/common><br \/><\/configuration> <\/div>\n<\/div>\n<p>En el fragmento anterior, primero definimos una nueva secci\u00f3n de configuraci\u00f3n para contener la configuraci\u00f3n de Logging.Common. Luego a\u00f1adimos el elemento de configuraci\u00f3n y definimos un adaptador de f\u00e1brica para System.Console y un poco de formato. Y ya est\u00e1. Si ejecutas la aplicaci\u00f3n ver\u00e1s que toda la informaci\u00f3n de registro se dirige a stdout.<\/p>\n<p>Registrar en stdout es \u00fatil para proyectos de pruebas unitarias y similares, pero no es adecuado para despliegues de producci\u00f3n. En este caso, es mejor utilizar un appender de f\u00e1brica como log4net o NLog y escribir los resultados en un archivo o tal vez en una base de datos (\u00bfqu\u00e9 tal de nuevo en Couchbase como un Almac\u00e9n de Datos Operacional?).<\/p>\n<h2>Uso del adaptador Log4Net<\/h2>\n<p>As\u00ed, que muestra c\u00f3mo utilizar el defecto ConsoleOutLoggerFactoryAdapter para escribir a stdout, pero \u00bfqu\u00e9 pasa con el uso de otro marco de registro como Log4Net? Bueno, eso es bastante f\u00e1cil de hacer asumiendo que has referenciado la dependencia a Log4Net en tu proyecto:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\"><configuration><br \/>\u00a0 <configsections><br \/>\u00a0 \u00a0 <sectiongroup name=\"common\">\u00a0 \u00a0 \u00a0 <\/p>\n<section name=\"logging\" type=\"Common.Logging.ConfigurationSectionHandler, Common.Logging\" \/>\u00a0 \u00a0 <\/sectiongroup>\u00a0 \u00a0 <\/p>\n<section name=\"log4net\" type=\"log4net.Config.Log4NetConfigurationSectionHandler, log4net\" \/>\u00a0 <\/configsections><\/p>\n<p>\u00a0 <common><br \/>\u00a0 \u00a0 <logging><br \/>\u00a0 \u00a0 \u00a0 <factoryadapter type=\"Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net\"><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <arg key=\"configType\" value=\"INLINE\" \/><br \/>\u00a0 \u00a0 \u00a0 <\/factoryadapter><br \/>\u00a0 \u00a0 <\/logging><br \/>\u00a0 <\/common><br \/>\u00a0 <br \/>\u00a0 <log4net><br \/>\u00a0 \u00a0 <appender name=\"FileAppender\" type=\"log4net.Appender.FileAppender\"><br \/>\u00a0 \u00a0 <param name=\"File\" value=\"C:templog.txt\" \/>\u00a0 \u00a0 <layout type=\"log4net.Layout.PatternLayout\"><br \/>\u00a0 \u00a0 \u00a0 <conversionpattern value=\"%date [%thread] %level %logger - %message%newline\" \/><br \/>\u00a0 \u00a0 <\/layout><br \/>\u00a0 \u00a0 <\/appender><br \/>\u00a0 \u00a0 <br \/>\u00a0 \u00a0 \u00a0 <level value=\"INFO\" \/><br \/>\u00a0 \u00a0 \u00a0 <appender-ref ref=\"FileAppender\" \/><br \/>\u00a0 \u00a0  <br \/>\u00a0 <\/log4net><br \/><\/configuration><\/div>\n<\/div>\n<p>Aqu\u00ed estamos creando la secci\u00f3n habitual Common.Logging y el elemento de configuraci\u00f3n y luego especificando el Log4NetLoggerFactoryAdapter. Tambi\u00e9n estamos especificando una secci\u00f3n log4net y un elemento de configuraci\u00f3n para un archivo appender y a\u00f1adiendo la ruta al archivo en el que escribir. Esto es m\u00e1s como una configuraci\u00f3n que se utilizar\u00eda en un entorno de producci\u00f3n. Tenga en cuenta que debe tener referencias a los siguientes paquetes Nuget en su archivo packages.config:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\"><packages>\u00a0 <package id=\"Common.Logging\" version=\"2.0.0\" targetframework=\"net45\" \/>\u00a0 <package id=\"Common.Logging.Log4Net\" version=\"2.0.1\" targetframework=\"net45\" \/>\u00a0 <package id=\"log4net\" version=\"1.2.10\" targetframework=\"net45\" \/>\u00a0 <package id=\"Newtonsoft.Json\" version=\"6.0.1\" targetframework=\"net45\" \/><\/packages><\/div>\n<\/div>\n<p>En la mayor\u00eda de los casos se utiliza Nuget para gestionar este archivo, pero el uso de este archivo le permite \"atajar\" el di\u00e1logo del gestor de paquetes Nuget.<\/p>\n<h2>Nota r\u00e1pida sobre los niveles de registro<\/h2>\n<p>El cliente utiliza los siguientes niveles de registro est\u00e1ndar:<\/p>\n<ul>\n<li>Rastrear<\/li>\n<li>Depurar<\/li>\n<li>Error<\/li>\n<li>Fatal<\/li>\n<li>Warn<\/li>\n<li>Informaci\u00f3n<\/li>\n<\/ul>\n<p>En general, Debug se utiliza para rastrear la ejecuci\u00f3n general de una operaci\u00f3n. Info se utiliza para rastrear la parte de gesti\u00f3n de la configuraci\u00f3n (cambios en la topolog\u00eda del cl\u00faster, etc.) del cliente y todas las excepciones capturadas (y posiblemente relanzadas) se registran como Error.<\/p>","protected":false},"excerpt":{"rendered":"<p>*Note: source can be found here. While perhaps one of the more drab features of an SDK, logging and instrumentation is probably one of the most valuable in terms of finding and isolating issues and ensuring that your application is [&hellip;]<\/p>","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811],"tags":[1281],"ppma_author":[8970],"class_list":["post-1565","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","tag-logging"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase .NET SDK 2.0 Development Series: Logging - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-development-series-logging\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase .NET SDK 2.0 Development Series: Logging\" \/>\n<meta property=\"og:description\" content=\"*Note: source can be found here. While perhaps one of the more drab features of an SDK, logging and instrumentation is probably one of the most valuable in terms of finding and isolating issues and ensuring that your application is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-development-series-logging\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T19:24:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:50:19+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Couchbase .NET SDK 2.0 Development Series: Logging\",\"datePublished\":\"2014-12-16T19:24:16+00:00\",\"dateModified\":\"2025-06-14T06:50:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/\"},\"wordCount\":521,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Logging\"],\"articleSection\":[\".NET\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/\",\"name\":\"Couchbase .NET SDK 2.0 Development Series: Logging - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T19:24:16+00:00\",\"dateModified\":\"2025-06-14T06:50:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase .NET SDK 2.0 Development Series: Logging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase .NET SDK 2.0 Development Series: Logging - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-development-series-logging\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase .NET SDK 2.0 Development Series: Logging","og_description":"*Note: source can be found here. While perhaps one of the more drab features of an SDK, logging and instrumentation is probably one of the most valuable in terms of finding and isolating issues and ensuring that your application is [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-net-sdk-20-development-series-logging\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T19:24:16+00:00","article_modified_time":"2025-06-14T06:50:19+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Couchbase .NET SDK 2.0 Development Series: Logging","datePublished":"2014-12-16T19:24:16+00:00","dateModified":"2025-06-14T06:50:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/"},"wordCount":521,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Logging"],"articleSection":[".NET"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/","name":"Couchbase .NET SDK 2.0 Development Series: Logging - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T19:24:16+00:00","dateModified":"2025-06-14T06:50:19+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-20-development-series-logging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase .NET SDK 2.0 Development Series: Logging"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, Ingeniero Superior de Software, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pas\u00f3 seis a\u00f1os en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de c\u00f3mo integrarse con N1QL (lenguaje de consulta).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pas\u00f3 seis a\u00f1os en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de c\u00f3mo integrarse con N1QL (lenguaje de consulta)."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1565"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1565\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1565"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}