visual studio que ejemplo c#-4.0 log4net

c#-4.0 - studio - log4net que es



Log4net C#4.0[(null)] en salida (2)

si solo desea que desaparezca (null) , también puede establecer log4net.Util.SystemInfo.NullText en algún otro valor como "" o string.Empty , lo usará en su lugar.

Cuando uso log4net para iniciar sesión en .NET4.0, uso el siguiente código

Declaración de LogManager:

private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

Y cuando se utiliza en el código:

log.Info("My info text");

Esto genera lo siguiente para el archivo de registro:

2013-10-01 14:41:11,010 [3] INFO MyNamespace.MyClass [(null)] - My info text

Me pregunto qué significa [(null)] y cómo puedo eliminarlo / cambiarlo.

Este es mi archivo de configuración:

<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> <log4net> <root> <level value="DEBUG" /> <appender-ref ref="LogFileAppender" /> </root> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" > <param name="File" value="log-file.txt" /> <param name="AppendToFile" value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> </log4net> </configuration>


Fijar

Para evitar que aparezca en el registro, elimine [%property{NDC}] del archivo de configuración.

Esto sucede porque log4net rellena automáticamente un contexto de información que podría ser útil para el registro; en algunos casos, esto puede resultar en un valor null .

log4net NDC

Esta publicación explica cómo usar NDC: ¿ Cuándo usar el ''contexto de diagnóstico anidado'' (NDC)?

En resumen, log4net llama al método estático log4net.NDC.Push para establecer el contexto del código.

Por ejemplo, puede configurar el NDC manualmente ejecutando lo siguiente:

log4net.NDC.Push("context")

A partir de ese punto, el envío de un mensaje de registro proporcionará %property{NDC} como el context la cadena.

ACTUALIZAR:

NDC.Push ha quedado en desuso. Alternativamente, puede usar ThreadContext.Stacks["NDC"].Push("context")