Event log |
High-level application events (for example start and stop) |
Limited in number of events |
Performance counters |
Use when you have rollup summary information (number of active users) or absolute (simple) values you want to measure (total requests) |
Not suitable for complex data |
Debug output |
Single user code pathing and debugging |
Overwhelming if used everywhere |
SEH |
Good for unexpected exceptions |
Can bend your design |
System.Diagnostics.Trace |
Easy to use |
Limited to Web apps |
ASP.NET trace |
Great for debugging |
Fixed functionality |
WMI |
Widely supported, complementary to other schemes (for example, your event log code can be surfaced through WMI) |
More complex to use and install applications with |
EIF |
Easier to program than WMI |
Doesn't expose all of WMI's power |
LAB |
Common requirements provided: MSMQ logging, DBMS logging |
A lot to learn |