Microsoft.Diagnostics.EventFlow с Inputs.EventSource - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь использовать 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 Ответ

1 голос
/ 22 января 2020

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

myEventFlowConfig. json:

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

"outputs": [
    {
        "type": "StdOutput"
    }
]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...