LogUtils.pas 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. unit LogUtils;
  2. interface
  3. uses
  4. Classes;
  5. type
  6. TLogUtils = class
  7. private
  8. FLogFolder: string;
  9. FLogFile: string;
  10. FExeVersion: string;
  11. public
  12. constructor Create;
  13. destructor Destroy; override;
  14. procedure AppendLogTo(const ALog: string);
  15. end;
  16. implementation
  17. uses SysUtils, UtilMethods, Math, ZhAPI;
  18. { TLog }
  19. procedure TLogUtils.AppendLogTo(const ALog: string);
  20. var
  21. f: TextFile;
  22. begin
  23. try
  24. AssignFile(f, FLogFile);
  25. if FileExists(FLogFile) then
  26. Append(f)
  27. else
  28. Rewrite(f);
  29. Writeln(f, Format('[Version: %s] %s %s', [FExeVersion, DateTimeToStr(Now), ALog]));
  30. Flush(f);
  31. finally
  32. CloseFile(f);
  33. end;
  34. end;
  35. constructor TLogUtils.Create;
  36. var
  37. vFormatSetting: TFormatSettings;
  38. begin
  39. vFormatSetting.ShortDateFormat := 'yyyy/MM/dd';
  40. vFormatSetting.DateSeparator := '-';
  41. FLogFolder := GetAppFilePath + 'log';
  42. if not DirectoryExists(FLogFolder) then
  43. CreateDirectoryInDeep(FLogFolder);
  44. FLogFile := FLogFolder + '\' + DateToStr(Date, vFormatSetting) + '.log';
  45. FExeVersion := GetExeFileVersion(ParamStr(0));
  46. end;
  47. destructor TLogUtils.Destroy;
  48. begin
  49. inherited;
  50. end;
  51. end.