Hi, I'm looking into how to implement logging in my C# app - its a DLL class library. What logging frameworks are most widely used - what would give users of my DLL the most flexibility and configurability? Is there a C# equivalent of log4j?
Equivalent of log4j for .NET platform is log4net and I am guessing it's widely used.
Here´s a similar question about Logging-Framework for .NET 3.5 What is the best logging solution for a C# .NET 3.5 project.
I am using NLog from years with success and it is very well done project.
People have been using Enterprise Library extensively. But it may be true that developers are switching to other products these days.
I'd check it out and see if it has the necessary functionality you need and not too much bloat.
Enterprise Library. It's robust and comes straight from Microsoft with all their best practices included. We use it in all our projects. It's very flexible and there is a UI tool that you can use in case you don't want to mess around with managing logging from the config file.
log4net is almost certainly the most common.
But I use Common.Logging - http://netcommon.sourceforge.net/ as it gives me flexibility
There are a variety of logging implementations for .NET currently in use, log4net, Enterprise Library Logging, NLog, to name the most popular. The downside of having differerent implementation is that they do not share a common interface and therefore impose a particular logging implementation on the users of your library.
Common.Logging library introduces a simple abstraction to allow you to select a specific logging implementation at runtime. Thus you can defer the decision what particular logging library to use until deployment. Adapters are used for plugging a particular logging system into Common.Logging.