¿Cómo se registra el nombre de la máquina a través de log4net?


Estoy usando Log4Net con AdoNetAppender para registrar mensajes de una aplicación systray simple en una base de datos 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.Diseño.PatternLayout que estoy usando con el appender.

¿ Hay una manera de registrar el nombre de la máquina a través de log4net de esta manera?

Author: Stephen Tolton, 2008-10-02

2 answers

Puede usar la propiedad pre-poblada log4net:HostName, por ejemplo:

<conversionPattern value="%property{log4net:HostName}" />

De esta manera no es necesario rellenar el MDC.

 76
Author: saluce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-06 19:42:08

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("machine", Environment.MachineName);

 11
Author: Thad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-18 10:23:45