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