Pergunta

Eu estou usando Log4Net com o AdoNetAppender para registrar mensagens de um aplicativo de bandeja do sistema simples em um banco de dados SQL Server 2005.

Eu quero registrar o nome da máquina juntamente com a mensagem de log porque este aplicativo será executado em várias máquinas e eu preciso saber sobre qual a mensagem se originou.

Mas, eu não posso encontrar uma maneira de expor essa informação através da log4net.Layout.PatternLayout que estou usando com o appender.

Existe uma maneira de registrar o nome da máquina via log4net desta maneira?

Foi útil?

Solução

Você pode usar a propriedade log4net:HostName pré-povoada, por exemplo:

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

Desta forma, você não precisa preencher o MDC.

Outras dicas

Você pode criar um parâmetro semelhante ao seguinte:

<parameter>
  <parameterName value="@machine" />
  <dbType value="String" />
  <size value="255" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%X{machine}" />
  </layout>
</parameter>

Em seguida, adicione esta linha antes de escrever para o log: MDC.Set("machine", Environment.MachineName);

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top