我们如何通过log4net记录计算机名称?
时间:2020-03-06 15:01:54 来源:igfitidea点击:
我将Log4Net与AdoNetAppender一起使用,以将消息从简单的系统托盘应用程序记录到SQL Server 2005数据库中。
我想将机器名称和日志消息一起记录下来,因为此应用程序将在多台机器上运行,并且我需要知道消息起源于哪台机器。
但是,我找不到通过我与添加程序一起使用的log4net.Layout.PatternLayout公开此信息的方法。
有没有办法以这种方式通过log4net记录计算机名称?
解决方案
我们可以创建类似于以下内容的参数:
<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);
我们可以使用预先填充的属性log4net:HostName
,例如:
<conversionPattern value="%property{log4net:HostName}" />
这样,我们无需填充MDC。