Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用etw nlog将日志写入自定义事件源_C#_Nlog - Fatal编程技术网

C# 如何使用etw nlog将日志写入自定义事件源

C# 如何使用etw nlog将日志写入自定义事件源,c#,nlog,C#,Nlog,对于我的控制台应用程序,我想将所有日志写入单独部分MyEventSourceName下的application和Services logs下的自定义事件源 我试图使用NLog.Etw,但似乎什么也没有出现。如何做到这一点 您可以使用事件日志目标: 例如: 看 目标支持.NET3.5+和.NET标准2.0。对于NetStandard 2.0,请使用。您可以使用事件日志目标: 例如: 看 目标支持.NET3.5+和.NET标准2.0。对于NetStandard 2.0,请使用。检查这是写入

对于我的控制台应用程序,我想将所有日志写入单独部分
MyEventSourceName
下的
application和Services logs
下的自定义事件源

我试图使用
NLog.Etw
,但似乎什么也没有出现。如何做到这一点


您可以使用事件日志目标:

例如:



目标支持.NET3.5+和.NET标准2.0。对于NetStandard 2.0,请使用。

您可以使用事件日志目标:

例如:



目标支持.NET3.5+和.NET标准2.0。对于NetStandard 2.0,请使用。

检查这是写入事件,但在源代码测试的
应用程序下。它不是在
应用程序和服务日志下写入的。这是
ETW
based@user584018日志属性默认为“应用程序”。试着改变它。例如
是。谢谢@Rolf。ETW解决的目的是什么?是否可以将控制台或窗口服务日志捕获为ETW?@user584018 ETW允许您发布大量数据,而不会影响发布的应用程序。它需要一个外部应用程序为ETW源设置一个侦听器,然后才能捕获和处理数据。与DebugView类似,但具有来自同一应用程序的多个源名称。请检查“这是写入事件”,但在“源代码>测试”下的“应用程序
下”。它不是在
应用程序和服务日志下写入的。这是
ETW
based@user584018日志属性默认为“应用程序”。试着改变它。例如
是。谢谢@Rolf。ETW解决的目的是什么?是否可以将控制台或窗口服务日志捕获为ETW?@user584018 ETW允许您发布大量数据,而不会影响发布的应用程序。它需要一个外部应用程序为ETW源设置一个侦听器,然后才能捕获和处理数据。与DebugView类似,但具有来自同一应用程序的多个源名称。有关在事件日志中查看ETW数据的详细信息:有关在事件日志中查看ETW数据的详细信息:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  autoReload="true"
  throwExceptions="false">

<extensions>
  <add assembly="NLog.Etw" />
</extensions>

<targets async="true">
  <target xsi:type="EtwEventSource"
        name="eetw"
        providerName="MyEventSourceName"
        taskName="${level}"
        layout="${message}">

   </target>
 </targets>

 <rules>
  <logger name="*" minlevel="Debug" writeTo="eetw" />
 </rules>
class Program
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    static void Main(string[] args)
    {
        logger.Info("New person created with name {0}");
    }
}