public void LogAlways([NotNull] Func<ILogger, string> logEntryBuilder)
{
if (logEntryBuilder == null)
{
throw new ArgumentNullException(nameof(logEntryBuilder));
}
if (this.disposed)
{
throw new ObjectDisposedException("BudgetAnalyserLog4NetLogger");
}
Level currentLevel = CurrentLogLevel;
this.alwaysLogLock.EnterWriteLock();
try
{
SetLogLevelToAll();
Log4NetLogger.Info(logEntryBuilder(this));
}
finally
{
// Reset back
CurrentLogLevel = currentLevel;
this.alwaysLogLock.ExitWriteLock();
}
}