Extension methods which target a common marker interface can be viewed as partial implementations of that interface.
If you place such extension methods in different namespaces then it is possible to utilize a technique of "Mixing In" the implementations used by a class.
This is demonstrated in code below. The one part of this that I took a minute to get my head around was that ILogger loses the semantics of an interface. The methods available to it are those extension methods which are visible to the compiler as dictated by the using statements.
Some links I learned from before writing this: