Microsoft.Diagnostics.EventFlow с Inputs.EventSource

Я пытаюсь использовать EventSource с Microsoft.Diagnostics.EventFlow и не могу вывести его на консоль. Вот пример, в котором он работает с Inputs.Trace, но не работает с Inputs.EventSource:

myEventFLowConfig.json:

{
"type": "EventSource",

"sources": [
    {
        "providerName": "MyCompanyEventSource"
    }
],

"inputs":
[
    {
        "type": "EventSource",
        "traceLevel": "Warning"
    },
    {
        "type": "Trace",
        "traceLevel": "Warning"
    }
],

"outputs": [
    {
        "type": "StdOutput"
    }
]

}

MyEventSource.cs

[EventSource(Name = "MyCompanyEventSource")]
public class MyEventSource : EventSource
{
    public static MyEventSource Log = new MyEventSource();

    [Event(250, Message = "MESSAGE FROM EVENT SOURCE", Level = EventLevel.Warning)]
    public void MessageFromEventSource()
    {
        WriteEvent(250);
    }
}

консольное приложение:

public class Program
{
    static void Main(string[] args)
    {
        using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("myEventFlowConfig.json"))
        {
            SomeMethod();
            Console.WriteLine("Press any key to exit...");                
            Console.ReadKey(intercept: true);
        }

    }

    private static void SomeMethod()
    {
        MyEventSource.Log.MessageFromEventSource();
        System.Diagnostics.Trace.TraceWarning("MESSAGE FROM TRACE");
    }
}

в консольном приложении я использую как EventSource, так и Trace в качестве входных данных, однако в консоли отображается только Trace. Что я делаю не так с EventSource, что он не отображается в консоли?

Спасибо!

1 ответ

Решение

Я обнаружил проблему, и это был файл конфигурации. Часть источников должна находиться внутри части входов. Таким образом, в файле конфигурации должна быть только коллекция входов и выходов. Рабочая конфигурация для EventSource в качестве ввода и StdOutput в качестве вывода выглядит следующим образом:

myEventFlowConfig.json:

{
"inputs": [
    {
        "type": "EventSource",
        "sources": [
            {
                "providerName": "MyCompanyEventSource",
                "traceLevel": "Warning"
            }
        ]
    }
],

"outputs": [
    {
        "type": "StdOutput"
    }
]
}
Другие вопросы по тегам