📄 log.pas
字号:
unit Log;
interface
uses
Windows, SysUtils, Classes, Dialogs;
type
// 霸烙 肺弊甫 扁废窍扁 困茄 努贰胶
TLog = class
private
AppName : String; // Application 疙
FileName : String; // 肺弊 颇老疙
LogLevel : Integer; // 肺弊饭骇 0捞搁 扁废窍瘤 臼澜
boFirst : Boolean;
public
constructor Create (aname, fname : String; level : Integer);
destructor Destroy; override;
procedure WriteLog(level : Integer; Str : String);
end;
var
LogObj : TLog;
implementation
constructor TLog.Create (aname, fname : String; level : Integer);
{
var
Stream : TFileStream;
flag : Boolean;
}
begin
if level > 0 then ShowMessage ('log 扁废吝');
AppName := aname;
FileName := fname;
LogLevel := level;
boFirst := TRUE;
end;
destructor TLog.Destroy;
begin
WriteLog(1, AppName + ' 肺弊 扁废 辆丰');
inherited Destroy;
end;
procedure TLog.WriteLog(level : Integer; Str : String);
var
Stream : TFileStream;
WritedStr : String;
WritedArray : array[0..256] of Char;
begin
if (LogLevel = 0) or (LogLevel < level) then Exit;
if boFirst = TRUE then begin
WritedStr := Format ('[%s] %s%s%s', [DateTimeToStr(Now), AppName + ' 肺弊 扁废 矫累', Char(10), Char(13)]);
StrPCopy (WritedArray, WritedStr);
try
DeleteFile(FileName);
Stream := TFileStream.Create(FileName, fmCreate);
Stream.Seek (0, soFromEnd);
Stream.WriteBuffer (WritedArray, StrLen(WritedArray));
Stream.Free;
except
on EFOpenError do;
on EWriteError do;
end;
boFirst := FALSE;
end;
WritedStr := Format ('[%s] %s%s%s', [DateTimeToStr(Now), Str, Char(10), Char(13)]);
StrPCopy (WritedArray, WritedStr);
try
Stream := TFileStream.Create(FileName, fmOpenReadWrite);
Stream.Seek (0, soFromEnd);
Stream.WriteBuffer (WritedArray, StrLen(WritedArray));
Stream.Free;
except
on EFOpenError do;
on EWriteError do;
end;
end;
Initialization;
begin
LogObj := TLog.Create('玫斥 努扼捞攫飘', '1000Y.Log', 0);
end;
Finalization;
begin
if LogObj <> nil then LogObj.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -