Frage

Ich bin mit Log4Net mit dem AdoNetAppender Nachricht von einer einfachen Systray-Anwendung in einen SQL Server einzuloggen 2005-Datenbank.

Ich möchte zusammen mit dem Log-Nachricht den Computernamen anmelden, da diese Anwendung auf mehreren Computern ausgeführt wird, und ich muss auf wissen, was man die Nachricht stammt.

Aber ich kann nicht einen Weg finden, diese Information über das log4net.Layout.PatternLayout zu machen, die ich mit dem appender verwenden.

Gibt es eine Möglichkeit, die Maschinennamen über log4net auf diese Weise anmelden?

War es hilfreich?

Lösung

Sie können die vorausgefüllt Eigenschaft log4net:HostName verwenden, zum Beispiel:

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

Auf diese Weise brauchen Sie nicht die MDC zu füllen.

Andere Tipps

Sie können einen Parameter ähnlich den folgenden erstellen:

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

Dann diese Zeile hinzufügen, bevor in das Protokoll zu schreiben: MDC.Set("machine", Environment.MachineName);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top