MathgeomGLS

Форк
0
/
Velthuis.Loggers.pas 
64 строки · 1.2 Кб
1
unit Velthuis.Loggers;
2

3
interface
4

5
uses
6
  System.Classes;
7

8
type
9
  ILogger = interface
10
    ['{B6821CA6-64F8-48B0-89D0-A9A3E6304D82}']
11
    procedure Log(Msg: string); overload;
12
    procedure Log(Format: string; Args: array of const); overload;
13
  end;
14

15
  TLogger = class(TInterfacedObject, ILogger)
16
  private
17
    FStream: TStream;
18
    FWriter: TStreamWriter;
19
  public
20
    constructor Create(S: TStream); overload;
21
    constructor Create(LogFileName: string); overload;
22
    destructor Destroy; override;
23
    procedure Log(Msg: string); overload;
24
    procedure Log(Format: string; Args: array of const); overload;
25
  end;
26

27
implementation
28

29
uses
30
  System.SysUtils;
31

32
{ TLogger }
33

34
constructor TLogger.Create(S: TStream);
35
begin
36
  FStream := S;
37
  FWriter := TStreamWriter.Create(S);
38
end;
39

40
constructor TLogger.Create(LogFileName: string);
41
var
42
  F: TFileStream;
43
begin
44
  F := TFileStream.Create(LogFileName, fmCreate);
45
  Create(F);
46
end;
47

48
destructor TLogger.Destroy;
49
begin
50
  FWriter.Free;
51
  FStream.Free;
52
end;
53

54
procedure TLogger.Log(Msg: string);
55
begin
56
  FWriter.WriteLine(Msg);
57
end;
58

59
procedure TLogger.Log(Format: string; Args: array of const);
60
begin
61
  FWriter.WriteLine(System.SysUtils.Format(Format, Args));
62
end;
63

64
end.
65

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.