¿Cómo se registra el nombre de la máquina a través de log4net?
Pregunta
Estoy usando Log4Net con AdoNetAppender para registrar mensajes desde una aplicación de una simple systray en una base de datos de SQL Server 2005.
Quiero registrar el nombre de la máquina junto con el mensaje de registro porque esta aplicación se ejecutará en varias máquinas y necesito saber en cuál se originó el mensaje.
Pero, no puedo encontrar una manera de exponer esta información a través de log4net.Layout.PatternLayout que estoy usando con el appender.
¿Hay alguna manera de registrar el nombre de la máquina a través de log4net de esta manera?
Solución
Puede usar la propiedad rellenada previamente log4net: HostName
, por ejemplo:
<conversionPattern value="%property{log4net:HostName}" />
De esta manera, no es necesario rellenar el MDC.
Otros consejos
puede crear un parámetro similar al siguiente:
<parameter>
<parameterName value="@machine" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{machine}" />
</layout>
</parameter>
Luego agregue esta línea antes de escribir en el registro: MDC.Set (" máquina " ;, Environment.MachineName);