Image courtesy of Ales Krivec / unsplash.com
Common.logging provides an abstraction for the logging framework of choice. For IoC the common.logging offers an interface. NoOpLogger is a fake implementation used for unit testing.
I prefer to use the nuget from log4net with the Common.Logging implementation. https://www.nuget.org/packages/Common.Logging.Log4Net1211/ With log4net I log to a database table for easy access to the logging and to a file for fallback if the database is unavailable.