如何使用Nlog获取处理器名称,Ram以及浏览器名称?

时间:2019-01-23 08:38:28

标签: nlog

我正在使用Nlog检查我的软件性能需要多少时间?等等等等

我想知道哪个处理器名称(如Intel Core)或其他名称以及浏览器名称(哪个浏览器用户正在使用我的软件)?

我可以了解上述2种布局吗? (浏览器和处理器名称) 到目前为止,我得到了如下所示的大量信息-

<target name="logfile" xsi:type="File" fileName="${logDirectory}/TimesApplicationStopped/${shortdate}/TimesApplicationStopped.csv">
  <layout xsi:type="CsvLayout" delimiter="Comma">
    <column name="GroupName" layout="${event-properties:GroupName}"/>
    <column name="UserName" layout="${event-properties:UserName}"/>
    <column name="Organization" layout="${event-properties:Organization}"/>
    <column name="Form" layout="${event-properties:Form}"/>
    <column name="Version" layout="${event-properties:Version}"/>
    <column name="UsedDateTime" layout="${event-properties:UsedDateTime}"/>
    <column name="Browser" layout=""/>
    <column name="Status" layout="${event-properties:Status}"/>
    <column name="Reason" layout="${event-properties:Reason}"/>
    <column name="Processor" layout=""/>
    <column name="OperatingSystem" layout="${environment:variable=OS}" />
    <column name="RAM" layout="" />
  </layout>
</target>

CSV File Image

1 个答案:

答案 0 :(得分:1)

听起来像您可以完全控制客户端应用程序,所以您可以捕获自己感兴趣的任何信息,并在应用程序启动时保存在GDC中:

NLog.GlobalDiagnosticsContext.Set("BrowserName","someValue");
NLog.GlobalDiagnosticsContext.Set("ProcessorName","someValue");

然后,您可以在登录客户端应用程序时包括以下值:

<layout xsi:type="CsvLayout" delimiter="Comma">
    <column name="Browser" layout="${gdc:item=BrowserName}"/>
    <column name="Processor" layout="${gdc:item=ProcessorName}"/>
</layout>

或者,您可以编写自己的自定义NLog LayoutRenderer并注册:https://github.com/NLog/NLog/wiki/How-to-write-a-custom-layout-renderer