Comparison of .NET Logging Frameworks and Libraries
Please note that the comparison of the different frameworks is a work in progress. If you believe that we missed an important feature or that we got one of the details wrong, please let us know.
| SmartInspect | NLog | log4net | Enterprise Library | ObjectGuy Framework | |
|---|---|---|---|---|---|
| License | Commercial | BSD | Apache | MS-PL | Custom |
| Source available | ![]() |
![]() |
![]() |
![]() |
![]() |
| Vendor | Gurock | - | Apache | Microsoft | - |
| Website | Link | Link | Link | Link | Link |
| Basic Features | SmartInspect | NLog | log4net | Enterprise Library | ObjectGuy Framework |
Logging simple text messages ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Log levels to filter messages ![]() |
Debug Verbose Message Warning Error Fatal |
Debug Trace Info Warn Error Fatal |
Debug Info Warn Error Fatal |
Verbose Information Warning Error Critical |
Debug Info Status Warning Error Critical Fatal |
Multiple connections or targets ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Log categories or sessions ![]() |
![]() |
![]() |
![]() |
![]() |
Limited |
Log file rotation by date/time ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Log file rotation by size ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Log file rotation max parts ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Optional configuration files ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Advanced Features | SmartInspect | NLog | log4net | Enterprise Library | ObjectGuy Framework |
Logging objects and arrays ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Logging complex structures and binary data ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Thread-safe logging ![]() |
![]() |
![]() |
![]() |
![]() |
? |
Tracing method invocation ![]() |
![]() |
Text-only | Text-only | Text-only | Text-only |
Logging variable values ![]() |
![]() |
Text-only | Text-only | Text-only | Text-only |
Watching variable values ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Logging thread and process behavior ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Advanced protocols and connections ![]() |
Network Named Pipe Memory Binary Files Custom |
Network Memory MSMQ Database Custom |
Network Memory Database Custom |
WMI MSMQ Custom |
Network Memory Custom |
Advanced protocol options ![]() |
Buffer Reconnect Interval Encryption |
Buffer Reconnect |
Buffer | ? | ![]() |
Asynchronous logging and backlog queues ![]() |
![]() |
Async-only | ![]() |
![]() |
![]() |
Log server application ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Graphical Viewer | SmartInspect | NLog | log4net | Enterprise Library | ObjectGuy Framework |
Graphical viewer application ![]() |
![]() |
1) |
2) |
![]() |
![]() |
Advanced filtering capabilities ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Navigation functionality ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Call stacks, graphs and message details ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Multiple views or windows ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Live monitoring via network or pipes ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Viewing and inspecting application data ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Graphical configuration utility ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Documentation & Support | SmartInspect | NLog | log4net | Enterprise Library | ObjectGuy Framework |
| Getting started tutorials | ![]() |
![]() |
![]() |
![]() |
![]() |
| Online articles / advanced topics | ![]() |
![]() |
![]() |
![]() |
![]() |
| API Reference | ![]() |
![]() |
![]() |
![]() |
![]() |
| Community support | ![]() |
![]() |
![]() |
![]() |
![]() |
| Professional / priority support | ![]() |
![]() |
![]() |
![]() |
![]() |
1) A project called NLogViewer is mentioned on some websites, but it looks like it's outdated and/or not supported anymore.
2) There are some basic viewer applications available from third-parties, but those aren't part of the project.
When searching for this page, usual search words that are used include NLog vs. log4net, log4net vs. Enterprise Library (also calledLogging Application Block). Log4net is also often called log4n (which is actually wrong). Any suggestions?
























