Вопрос

Я использую Log4Net с AdoNetAppender для записи сообщений из простого приложения systray в базу данных SQL Server 2005.

Я хочу записать имя компьютера вместе с сообщением журнала, потому что это приложение будет работать на нескольких компьютерах, и мне нужно знать, на каком из них возникло сообщение.

Но я не могу найти способ раскрыть эту информацию через log4net.Layout.PatternLayout, который я использую с appender.

Есть ли способ зарегистрировать имя машины через log4net таким образом?

Это было полезно?

Решение

Вы можете использовать предварительно заполненное свойство log4net: HostName , например:

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

Таким образом, вам не нужно заполнять MDC.

Другие советы

вы можете создать параметр, подобный следующему:

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

Затем добавьте эту строку перед записью в журнал: MDC.Set (" machine " ;, Environment.MachineName);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top