如何通过log4netlogging机器名称?

我正在使用Log4Net和AdoNetAppender将消息从简单的systray应用程序logging到SQL Server 2005数据库中。

我想logging机器名称和日志消息,因为这个应用程序将运行在多台机器上,我需要知道消息来自哪一个。

但是,我无法find一种方法来通过我使用的appender的log4net.Layout.PatternLayout来公开这些信息。

有没有办法通过log4net以这种方式login机器名?

您可以使用预填充的属性log4net:HostName ,例如:

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

这样你就不需要填充MDC。

您可以创build一个类似于以下的参数:

 <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);