To answer this question. I tried all style of reading event logs.
Using .NET2.0 approach using EventLog class, then reading using .NET3.0 approach using EventLogQuery and EventLogReader class, finally I tried WMI approach.
I have to read event logs based on time or in time slice for every 5 mins or so.
You guys will surprised to know that WMI will retrieve data way more faster then other .NETx approach and we will get more fields and no OS dependencies or firewall issues.
But other two approaches have cons.
just wanted to share this.
Thanks