Using static log provider

Prerequisites: install abstractions module.

Abstractions module contains a static class named LogProvider which serves as a global shared source of ILog instance.

It's intended use case is logging in libraries: library authors may not want to force their users to provide an ILog instance each time they're using library classes. Instead, these classes could just obtain a log from LogProvider:

LogProvider.Get().Info("library code message");

User application or underlying host may choose to explicitly configure LogProvider in order to enable this logging:

LogProvider.Configure(new ConsoleLog());

By default, Get method returns an instance of silent log.