Domanda

Sto usando Log4Net con AdoNetAppender per registrare i messaggi da una semplice applicazione systray in un database SQL Server 2005.

Voglio registrare il nome della macchina insieme al messaggio di registro perché questa applicazione sarà in esecuzione su più macchine e ho bisogno di sapere su quale ha originato il messaggio.

Ma non riesco a trovare un modo per esporre queste informazioni tramite log4net.Layout.PatternLayout che sto usando con l'appender.

Esiste un modo per registrare il nome della macchina tramite log4net in questo modo?

È stato utile?

Soluzione

È possibile utilizzare la proprietà prepopolata log4net: Nomehost , ad esempio:

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

In questo modo non è necessario popolare MDC.

Altri suggerimenti

puoi creare un parametro simile al seguente:

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

Quindi aggiungi questa riga prima di scrivere nel registro: MDC.Set (" machine " ;, Environment.MachineName);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top