我正在使用Log4Net和AdoNetAppender將消息從簡單的systray應用程序記錄到SQL Server 2005數據庫中。如何通過log4net記錄機器名稱?
我想記錄機器名稱以及日誌消息,因爲這個應用程序將運行在多臺機器上,我需要知道消息來自哪一個。
但是,我無法找到一種方法來通過我使用的appender log4net.Layout.PatternLayout公開這些信息。
有沒有辦法通過log4net以這種方式記錄機器名?
我正在使用Log4Net和AdoNetAppender將消息從簡單的systray應用程序記錄到SQL Server 2005數據庫中。如何通過log4net記錄機器名稱?
我想記錄機器名稱以及日誌消息,因爲這個應用程序將運行在多臺機器上,我需要知道消息來自哪一個。
但是,我無法找到一種方法來通過我使用的appender log4net.Layout.PatternLayout公開這些信息。
有沒有辦法通過log4net以這種方式記錄機器名?
可以使用預填充屬性log4net:HostName
,例如:
<parameter>
<parameterName value="@machine" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{machine}" />
</layout>
</parameter>
然後寫入日誌之前添加此行
<conversionPattern value="%property{log4net:HostName}" />
這樣你就不需要填充MDC。
您可以創建類似下面的參數:MDC.Set("machine", Environment.MachineName);
完美運作。我知道它一定是簡單的。謝謝。 – 2008-10-02 15:48:27
對於未來的讀者,我讓我的AdoNetAppender使用這個<參數名稱=「工作站」> –
granadaCoder
2017-04-12 19:09:12