anchor.diff:  
       property CurrentLevel : TmLogMessageLevel read FCurrentLevel write FCurrentLevel;
       property FileName : TFileName read FFileName write FFileName;
  +    property MaxFileSizeInMb : integer read FMaxFileSizeInMb write FMaxFileSizeInMb;
  +  end;
  +
  +  { TmConsolePublisher }
  +
  +  TmConsolePublisher = class (TmLogPublisher)
  +  strict private
  +    FCurrentLevel: TmLogMessageLevel;
  +  public
  +    procedure AfterCreate; override;
  +    destructor Destroy; override;
  +
  +    function ActInsideMainThread : boolean; override;
  +    procedure Publish (aContext, aLevel, aMessage : string; aDate : TDateTime); override;
  +    function Level : TmLogMessageLevel; override;
  +
  +    property CurrentLevel : TmLogMessageLevel read FCurrentLevel write FCurrentLevel;
     end;
   
   implementation
  +
  +uses
  +  FileUtil;
  +
  +var
  +  UTF8BOM : array[0..2] of byte = ($EF, $BB, $BF);
  +
  +{ TmConsolePublisher }
  +
  +procedure TmConsolePublisher.AfterCreate;
  +begin
  +
  +end;
  +
  +destructor TmConsolePublisher.Destroy;
  +begin
  +  inherited Destroy;
  +end;
  +
  +function TmConsolePublisher.ActInsideMainThread: boolean;
  +begin
  +  Result := false;
  +end;
  +
  +procedure TmConsolePublisher.Publish(aContext, aLevel, aMessage: string; aDate: TDateTime);
  +begin
  +  WriteLn(Self.GetFormattedString(aContext, aLevel, aMessage, aDate));
  +end;
  +
  +function TmConsolePublisher.Level: TmLogMessageLevel;
  +begin
  +  Result := FCurrentLevel;
  +end;
   
   {$ifdef lcl}
   
  
positive.code: end;
  
  procedure TmFilePublisher.Publish(aContext, aLevel, aMessage: string; aDate: TDateTime);
  begin
    if FFileName <> '' then
    begin
      if not FFileAssigned then
      begin
        Assign(FLogFile, FFileName);
        if FileExists(FFileName) then
          Append(FLogFile)
        else
          Rewrite(FLogFile);
        FFileAssigned := true;
      end;
      WriteLn(FLogFile, Self.GetFormattedString(aContext, aLevel, aMessage, aDate));
      Flush(FLogFile);
    end;
  end;
  
  
negative.code:   strict private
      FCurrentLevel : TmLogMessageLevel;
      FFileName : TFileName;
      FFileStream : TFileStream;
      FMaxFileSizeInMb : integer;
    public
      procedure AfterCreate; override;
      destructor Destroy; override;
  