Как вы регистрируете имя машины через log4net?
Вопрос
Я использую 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);