Einzelnen Beitrag anzeigen

mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#13

AW: Spring4D Logging

  Alt 16. Feb 2023, 22:44
Aber klar ich kann das auch manuell machen im Programm wenn $DEBUG defined ist.
Vielleicht habe ich es nicht verständlich erklärt: Du kannst dein eigenes Remote-Logging schreiben, oder das Programm Synopse LogView aus dem mORMot1 SQLite3\Samples\11 - Exception logging nehmen. Der Quelltext ist noch nicht nach mORMot2 portiert. Du musst mORMot1 installieren und es erstellen. Mit dem Button Server Launch startest du den Server, der auf den konfigurierbaren Port lauscht. Am einfachsten schreibst du dir eine Unit wie folgt:
Delphi-Quellcode:
unit u_RemoteLogging;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.UITypes, System.Classes,
  mormot.core.base,
  mormot.core.text,
  mormot.core.rtti,
  mormot.core.log;

type
  TRemoteLogging = class(TComponent)
  strict private
    FLogClass: TSynLogClass;
  protected
    const
      DEFAULT_PORT = 8091;
  public
    destructor Destroy; override;
    procedure Start(pmLogClass: TSynLogClass; const pmcUri: RawUtf8 = '127.0.0.1/LogService');
  end;

implementation

uses
  mormot.net.sock,
  mormot.rest.http.client;

//==============================================================================
// TRemoteLogging
//==============================================================================

destructor TRemoteLogging.Destroy;
begin
  if FLogClass <> Nil then
    FLogClass.Family.EchoRemoteStop;

  inherited Destroy;
end;

procedure TRemoteLogging.Start(pmLogClass: TSynLogClass; const pmcUri: RawUtf8);
var
  uri: TUri;
begin
  if pmLogClass <> Nil then
  try
    FLogClass := pmLogClass;
    uri.From(pmcUri, Int32ToUtf8(DEFAULT_PORT));
    TRestHttpsClient.CreateForRemoteLogging(uri.Server, pmLogClass, Utf8ToInteger(uri.Port), uri.Root);
  except
    on E: Exception do
      pmLogClass.Add.Log(sllError, E);
  end;
end;

end.
Durch diesen Aufruf TRemoteLogging.Create(Self).Start(TSynLog); bindest du sie ins Programm ein und kannst danach den Einträgen im LogView folgen.

PS: Für dein Programm verwendest du mORMot2. Nur zur Erstellung des Programms Synopse LogView benötigst du zur Zeit noch mORMot1.

Bis bald...
Thomas
Miniaturansicht angehängter Grafiken
logview.png  

Geändert von mytbo (16. Feb 2023 um 22:58 Uhr) Grund: Nachtrag hinzugefügt
  Mit Zitat antworten Zitat