So, to give some context, as that always helps, we are using LightInject and Log4Net and Common.Logging. If we initialize the logger as:
public static ILog Logger = LogManager.GetLogger<someType>();
the logger works the first time the class is instantiated (via LightInject) and never seems to log after that (or it may not even log the first time, hard to say sometimes).
If we change that line to this (notice the subtle difference) it works always.
public static readonly ILog Logger = LogManager.GetLogger<someType>();
So ... I get that a static readonly can only be set once for the class initialization, and be set either as we are doing or in a static constructor. But why does it "lose" the logger if we don't make it readonly?