找不到Win32 TraceLogging的输出

问题描述

我试图复制Microsoft提供的TraceLogging的简短示例程序(请参见下文,进行一些细微更改)。我在Visual Studio 2019中完成了``开发''(完全复制)。一切都很好,编译没有问题,运行没有问题,但是在我的PC上我找不到更新的* .etl或* .log文件,也找不到事件查看器中某处的条目。

我仔细阅读了Microsoft文档,并在Internet上搜索了多个小时,但没有任何有用的发现。

我知道我有时会很愚蠢,我必须错过一些显而易见的事情,但这是什么?有什么提示吗?非常感谢!

#include <windows.h> // or <wdm.h> for kernel-mode.
#include <winmeta.h>
#include <TraceLoggingProvider.h>
#include <stdio.h>

// Define the GUID to use in TraceLoggingRegister 
// {5B5852D4-DC24-4A0F-87B6-9115AE9D2768}
TRACELOGGING_DEFINE_PROVIDER (      // defines g_hProvider
    g_hProvider,// Name of the provider variable
    "Test-Test",// Human-readable name of the provider
    (0x5b5852d4,0xdc24,0x4a0f,0x87,0xb6,0x91,0x15,0xae,0x9d,0x27,0x68) );     // Provider GUID


int main ( int argc,char *argv[] ) // or DriverEntry for kernel-mode.
{
    HRESULT hrRegister;

    hrRegister = TraceLoggingRegister ( g_hProvider );
    if ( !SUCCEEDED ( hrRegister ) ) {
        printf ( "TraceLoggingRegister failed. Stopping." );
        return 1;
    }
    TraceLoggingWrite (
        g_hProvider,"MyEvent1",// TraceLoggingChannel ( WINEVENT_CHANNEL_CLASSIC_TRACE ),// TraceLoggingLevel ( WINEVENT_LEVEL_CRITICAL ),TraceLoggingString ( argv[0],"arg0" ),// field name is "arg0"
        TraceLoggingInt32 ( argc ) );               // field name is implicitly "argc"

    TraceLoggingUnregister ( g_hProvider );
    return 0;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)