BaseLogger.pas 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. unit BaseLogger;
  2. interface
  3. uses
  4. mybean.core.objects, Classes, SysUtils, StrUtils, WindowsSysVersion, superobject,
  5. Dialogs, IdHTTP, ULogger, InterfaceLogger, DateUtils;
  6. type
  7. TBaseLogger = class(TMyBeanInterfacedObject, ILogger)
  8. private
  9. FLoginName: string;
  10. FIP: string;
  11. FPlatform: string;
  12. FEnable: Boolean;
  13. FUrl,
  14. FAppCode,
  15. FClientVersion: string;
  16. public
  17. procedure Log(AMessage, ACode, ALoginName: string); overload; virtual; stdcall;
  18. procedure Log(AMessage, ACode, ALoginName, AStrLevel: string); overload; virtual; stdcall;
  19. procedure AsynLog(AMessage, ACode, ALoginName: string); virtual; stdcall;
  20. procedure Success(AMessage, ACode, ALoginName: string); virtual; stdcall;
  21. procedure Info(AMessage, ACode, ALoginName: string); virtual; stdcall;
  22. procedure Debug(AMessage, ACode, ALoginName: string); virtual; stdcall;
  23. procedure Warning(AMessage, ACode, ALoginName: string); virtual; stdcall;
  24. procedure Error(AMessage, ACode, ALoginName: string); virtual; stdcall;
  25. procedure Init;
  26. procedure LoadConfig;
  27. constructor Create; override;
  28. end;
  29. implementation
  30. { TBaseLogger }
  31. procedure TBaseLogger.AsynLog(AMessage, ACode, ALoginName: string);
  32. begin
  33. end;
  34. constructor TBaseLogger.Create;
  35. begin
  36. inherited;
  37. LoadConfig;
  38. Init;
  39. end;
  40. procedure TBaseLogger.Debug(AMessage, ACode, ALoginName: string);
  41. begin
  42. Log(AMessage, ACode, ALoginName, 'debug');
  43. end;
  44. procedure TBaseLogger.Error(AMessage, ACode, ALoginName: string);
  45. begin
  46. Log(AMessage, ACode, ALoginName, 'error');
  47. end;
  48. procedure TBaseLogger.Info(AMessage, ACode, ALoginName: string);
  49. begin
  50. Log(AMessage, ACode, ALoginName, 'info');
  51. end;
  52. procedure TBaseLogger.Init;
  53. begin
  54. try
  55. FPlatform := '';
  56. FIP := '0.0.0.0';
  57. case GetWindowsSystemVersion of
  58. WinNone: FPlatform := '';
  59. Win95: FPlatform := 'Windows 95';
  60. Win98: FPlatform := 'Windows 98';
  61. WinMe: FPlatform := 'Windows Me';
  62. Win2000: FPlatform := 'Windows 2000';
  63. WinServer2000: FPlatform := 'Windows Server 2000';
  64. WinXp: FPlatform := 'Windows XP';
  65. WinXp64: FPlatform := 'Windows XP x64';
  66. WinServer2003: FPlatform := 'Windows Server 2003';
  67. WinHomeServer: FPlatform := 'Windows Home Server';
  68. WinServer2003R2: FPlatform := 'Windows Server 2003 R2';
  69. WinVista: FPlatform := 'Windows Vista';
  70. WinServer2008: FPlatform := 'Windows Server 2008';
  71. WinServer2008R2: FPlatform := 'Windows Server 2008 R2';
  72. Win7: FPlatform := 'Windows 7';
  73. end;
  74. FIP := LocalIP;
  75. except
  76. on E: Exception do
  77. begin
  78. Dialogs.ShowMessage(E.Message);
  79. end;
  80. end;
  81. end;
  82. procedure TBaseLogger.LoadConfig;
  83. var
  84. AFullPath: string;
  85. jo: ISuperObject;
  86. begin
  87. AFullPath := ExtractFilePath(ParamStr(0)) + CONFIG_DIR;
  88. if not FileExists(AFullPath) then
  89. begin
  90. FEnable := False;
  91. Exit;
  92. end;
  93. try
  94. jo := TSuperObject.ParseFile(AFullPath, False);
  95. FEnable := jo['enable'].AsBoolean();
  96. FUrl := jo['url'].AsString();
  97. FAppCode := jo['appCode'].AsString();
  98. FClientVersion := jo['clientVersion'].AsString();
  99. except
  100. on E: Exception do
  101. begin
  102. FEnable := False;
  103. Dialogs.ShowMessage(E.Message);
  104. end;
  105. end;
  106. end;
  107. procedure TBaseLogger.Log(AMessage, ACode, ALoginName, AStrLevel: string);
  108. begin
  109. end;
  110. procedure TBaseLogger.Log(AMessage, ACode, ALoginName: string);
  111. begin
  112. Log(AMessage, ACode, ALoginName, 'error');
  113. end;
  114. procedure TBaseLogger.Success(AMessage, ACode, ALoginName: string);
  115. begin
  116. Log(AMessage, ACode, ALoginName, 'success');
  117. end;
  118. procedure TBaseLogger.Warning(AMessage, ACode, ALoginName: string);
  119. begin
  120. Log(AMessage, ACode, ALoginName, 'warning');
  121. end;
  122. end.