anchor.diff:      procedure (Output : ILogOutput)
       begin
         Output.BeginSection(Msg);
  -    end
  +    end,
  +    liSection
     );
   end;
   
  
positive.code:       begin
          if Severity >= Output.SeverityThreshold then
            Output.WriteMessage(Severity, Msg);
        end
      );
  end;
  
  
negative.code:   EnterSection(Format(Msg, Args));
  end;
  
  procedure TBaseLogger.IterateOutputs(const Action : TProc<ILogOutput>; CheckEnabled : Boolean);
  var
    Output : ILogOutput;
  begin
    if not CheckEnabled or Enabled then
      try
        for Output in Outputs.LockList do
          Action(Output);
      finally
        Outputs.UnlockList;
      end;
  end;
  
  procedure TBaseLogger.IterateOutputs(const Action : TProc<ILogOutput>; ForItem : TLogItem);
  begin
    if IsAllowedItem(ForItem) then
      IterateOutputs(Action, True);
  end;
  
  procedure TBaseLogger.LeaveSection(const Msg : String);
  