anchor.diff:  implementation
   
   uses
  +  System.Types,
     FIToolkit.Commons.Utils,
     FIToolkit.Logger.Consts;
   
  
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: 
  type
  
    TLogOutputList = class (TThreadList<ILogOutput>);
  
    TAbstractLogger = class abstract (TInterfacedObject, ILogger)
      strict private
        FOutputs : TLogOutputList;
        FSeverityThreshold : TLogMsgSeverity;
      private
        function  GetEnabled : Boolean;
        function  GetSeverityThreshold : TLogMsgSeverity;
        procedure SetSeverityThreshold(Value : TLogMsgSeverity);
      strict protected
        property Outputs : TLogOutputList read FOutputs;
      public
        constructor Create; virtual;
        destructor Destroy; override;
  