Went with custom listener... Added this nuget package
<package id="Microsoft.Diagnostics.Tracing.TraceEvent" version="1.0.21" targetFramework="net45" />
using Microsoft.Diagnostics.Tracing;
using Microsoft.Diagnostics.Tracing.Session;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication14
{
class Program
{
static void Main(string[] args)
{
string guid1 = "aad1e3a4-8f28-44c8-b7a3-31b9d3ae08d3";
string guid2 = "8ac71c54-393d-411d-a93e-1c774ebe0cd3";
string guid3 = "79ac5539-ea81-4704-9009-495ae6f4809b";
string guid4 = "a1808acc-75ba-49a2-92db-ca5e663fe629";
if (args.Length > 0) guid1 = args[0];
if (args.Length > 1) guid2 = args[1];
if (args.Length > 2) guid3 = args[2];
if (args.Length > 3) guid4 = args[3];
new Thread(new ThreadStart(delegate { GetTraces(guid1); })).Start();
new Thread(new ThreadStart(delegate { GetTraces(guid2); })).Start();
new Thread(new ThreadStart(delegate { GetTraces(guid3); })).Start();
new Thread(new ThreadStart(delegate { GetTraces(guid4); })).Start();
Console.ReadLine();
Environment.Exit(0);
}
public static void GetTraces(string guid)
{
using (var session = new TraceEventSession("TestSession_" + guid)) // Create a session to listen for events
{
session.Source.Dynamic.All += delegate(TraceEvent data) // Set Source (stream of events) from session.
{ // Get dynamic parser (knows about EventSources)
if (data.EventName.Contains("Manifest"))
{
return;
}
// Subscribe to all EventSource events
Console.WriteLine("GOT Event " + data); // Print each message as it comes in
};
var eventSourceGuid = new Guid(guid); // Get the unique ID for the eventSouce.
session.EnableProvider(eventSourceGuid); // Enable MyEventSource.
session.Source.Process(); // Wait for incoming events (forever).
}
}
}
}