anchor.diff:  
   type
   
  +  TLogOutputList = class (TThreadList<ILogOutput>);
  +
     TAbstractLogger = class abstract (TInterfacedObject, ILogger)
       strict private
  -      FOutputs : TList<ILogOutput>;
  +      FOutputs : TLogOutputList;
         FSeverityThreshold : TLogMsgSeverity;
       private
         function  GetEnabled : Boolean;
         function  GetSeverityThreshold : TLogMsgSeverity;
         procedure SetSeverityThreshold(Value : TLogMsgSeverity);
       strict protected
  -      property Outputs : TList<ILogOutput> read FOutputs;
  +      property Outputs : TLogOutputList read FOutputs;
       public
         constructor Create; virtual;
         destructor Destroy; override;
  
positive.code:   Output : ILogOutput;
  begin
    if Enabled then
    begin
      TMonitor.Enter(Outputs);
      try
        for Output in Outputs do
          Action(Output);
      finally
        TMonitor.Exit(Outputs);
      end;
    end;
  end;
  
  procedure TBaseLogger.LeaveSection(const Msg : String);
  
negative.code: implementation
  
  uses
    System.Types,
    FIToolkit.Commons.Utils,
    FIToolkit.Logger.Consts;
  
  