Logging is one the important part of any small or big application and selecting the right logging option is very crucial and the decision is made on the basis of logging time response (if you are working on the real time application like my CRM, Stock application), cost of logging implementation and in last at which level of logging you want in your application is very important. Yesterday I found a very interesting comparison between different available logging options; I felt I should share it with you guys.
Options
|
Positive Points
|
Negative Points
|
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
|