AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spring4D Logging

Ein Thema von wasbo · begonnen am 25. Jan 2022 · letzter Beitrag vom 16. Feb 2023
Antwort Antwort
Seite 2 von 2     12   
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#11

AW: Spring4D Logging

  Alt 15. Feb 2023, 18:53
Eine kleine Frage: Ich habe mich gewundert dass die Datei erst beim beenden geschrieben wird obwohl ich AutoFlushTimeOut gesetzt habe.
Bist du sicher, dass da nichts geschrieben wird? Auch wenn der Explorer 0 Bytes anzeigt, werden die Einträge nach Ablauf der AutoFlushTimeOut Zeit in die Datei geschrieben. Ansonsten erzwingt die Funktion Flush(True) das sofortige Schreiben. Für dich könnten die Echo Funktionen von Interesse sein. Du kannst eine eigene Callback für EchoCustom, oder mit dem ISynLogCallback Interface dein eigenes Remote-Logging schreiben und mit EchoRemoteStart starten. In den DDD Tools von mORMot1 findest du ein Beispiel für WebSockets.

Bis bald...
Thomas

Geändert von mytbo (15. Feb 2023 um 19:48 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
534 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Spring4D Logging

  Alt 16. Feb 2023, 08:27
Bist du sicher, dass da nichts geschrieben wird? Auch wenn der Explorer 0 Bytes anzeigt, werden die Einträge nach Ablauf der AutoFlushTimeOut Zeit in die Datei geschrieben.
Ja. Weil wie Du in der Funktion siehst ist der DebugHook = 1. Somit ist die Bedingung nicht erfüllt und der Autoflushthread wird nicht gestartet. Aber klar ich kann das auch manuell machen im Programm wenn $DEBUG defined ist.
Danke

Übrigens sorry dem Threadersteller für das kapern dieses Threads. Eigentlich gings ja um Spring4D...
Gruss Werner
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
mytbo

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

AW: Spring4D Logging

  Alt 16. Feb 2023, 23: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 23:58 Uhr) Grund: Nachtrag hinzugefügt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz