With the latest release of EventSource we could create dynamic events without having to create class that inherits from EventSource. This is will be not be good for Performance.
Using these methods we could either log Anonymous objects or Classes that have the EventData Attribute applied to it. The caveat is that these objects public properties alone will be serialized. These properties have to be of native types like string,int,datetime, guid , IEnumerable. If you don’t want a property to be serialized you could apply the attribute EventIgnore.
The source code for this repository is in https://github.com/naveensrinivasan/ETWSamples
Here is the sample code of using Dynamic eventsource to generate ETW traces[gist https://gist.github.com/naveensrinivasan/83ded09f7d754ad0b3a8]
Here is the trace from Perfview generated using[gist https://gist.github.com/naveensrinivasan/11a793b35a18fc9546dd]