
Delphi (Delphi XE6 - Delphi 12 Athen)/FreePascal (Trunk)/. NET (Windows/Linux/Android/macOSX/iOS) Bibliothek zum Anmelden bei Multi -Anbietern:
Bitte "Star" dieses Projekt in GitHub! Es kostet nichts anderes, als auf den Code zu verweisen. 
Wenn Sie dieses Projekt nützlich finden, erwägen Sie bitte eine Spende.
10.20.2024 Rad Studio 12 unterstützt
22. November2021 Rad Studio 11 unterstützt
30. Mai 2020: RAD Studio 10.4 unterstützt
02.20.2020: Twilio -Anbieter
Apr. 25.2020: Benutzerdefinierte Ausgangsformat & benutzerdefinierte Tags Support
April 24.2020: Sentry -Anbieter
14. September 2019: Neue optionale Protokollinformationen: ThreadID.
11. September 2019: Jetzt im RAD Studio Getit Paket Manager enthalten.
28. März 2019: Nicht abgehandelte Ausnahmen Hook
28. März 2019: Verbesserte Ausnahmeinformationen
16. März 2019: Graylog -Anbieter
28. Februar 2019: InfluxDB -Anbieter
26. Februar 2019: Elasticsearch -Anbieter
25. Februar 2019: Logstash -Anbieter
19. Februar 2019: Delphi Linux -Kompatillität.
10. Februar 2019: Kompatibilität von Fironemonkey OSX und iOS.
Dez. 08. Dezember 2018: Laden/Speichern von Anbietern von Single JSON laden/speichern
Dezember 07.2018: Delphi 10.3 Rio -Unterstützung
11. September 2018: Fironemekey Android -Kompatibilität verbessert sich
04. Juli 2018: Native DLL und .NET WARPPER (dank des Turrikans)
29.29.2018: Konfiguration von/nach JSON
15. Juni 2018: Syslog -Anbieter.
28. Mai 2018: Slack -Anbieter.
27. Mai 2018: ADODB -Anbieter.
27. Mai 2018: Telegrammanbieter.
25. Mai 2018: Custom Output MSG.
22. Mai 2018: Elchunterstützung.
20. Mai 2018: Delphinus -Unterstützung.
20. Mai 2018: JSON -Ausgabe mit optionalen Feldern für Redis und Rastanbieter.
17. Mai 2018: Freepascal Linux -Kompatibilität.
02. Mai 2018: Freepascal Windows -Kompatibilität.
Schneller Logger ist asynchron. Alle Protokolle werden an eine Warteschlange gesendet und beeinträchtigen nicht Ihren Anwendungsfluss. Sie können viele Anbieter definieren, um jeden Protokolleintrag zu senden und zu entscheiden, welches Level jeden akzeptiert.
program
{ $APPTYPE CONSOLE }
uses
Quick.Logger:
Quick.Logger.Provider.Files;
Quick.Logger.Provider.Console;
begin
// Add Log File and console providers
Logger.Providers.Add(GlobalLogFileProvider);
Logger.Providers.Add(GlobalLogConsoleProvider);
// Configure provider options
with GlobalLogFileProvider do
begin
FileName := ' .Logger.log ' ;
DailyRotate := True;
MaxFileSizeInMB := 20 ;
LogLevel := LOG_ALL;
Enabled := True;
end ;
with GlobalLogConsoleProvider do
begin
LogLevel := LOG_DEBUG;
ShowEventColors := True;
Enabled := True;
end ;
Log( ' Test entry ' ,etInfo);
Log( ' Test number: %d ' ,[ 1 ],etWarning);
end .QuickLogger verwaltet Logger und Anbieter automatisch. Logger und Anbieter verfügen über eine globale Klasse, die automatisch erstellt und in Close Your App veröffentlicht wurde. Sie müssen nur gewünschte Anbieter zu Ihrer Verwendungsklausel hinzufügen.
Hinweis: Sie müssen fast einen Anbieter hinzufügen, um die Protokollierung zu senden.
Properties:
- **Providers:** List of providers to send logs.
- **OnProviderError:** Event to receive provider error notifications.
- **RedirectOwnErrorsToProvider:** Select provider to get all provider notification errors.
- **WaitForFlushBeforeExit:** Number of seconds logger allowed to flush queue before closed.
- **QueueCount:** Queued items in main queue.
- **ProvidersQueueCount:** Queued items in providers queue (all providers).
- **OnQueueError:** Event for receive queue errors.
- **IsQueueEmpty:** Check if main queue or any provider queue has items pending to process.
Es gibt eine Reihe von Eventypen, die Sie in Ihren Protokollen definieren können: Ethader, Etinfo, Etsuccess, EtWarning, Eterror, etcritical, Etexception, Etdebug, Ettrace usw. etcustom1 usw.
Jeder Logger -Anbieter kann so konfiguriert werden, dass er auf einen oder mehrere dieser Ereignisstypen anhört und die Anzahl der empfangenen Ereignisse für eine Reihe von Eventypes pro Tag, Stunde, Minute oder Sekunde begrenzt, um Leistungsprobleme zu vermeiden oder zu spammend zu werden.
Anbieter verwalten die Ausgabe für Ihre Protokolle. Die Ausgabe kann Datei, Konsole, E -Mail usw. sein. Wenn ein Anbieter ein Vielfaches fehlschlägt, um ein Protokoll zu senden, wird automatisch deaktiviert (vollständige Festplatten, Remote -Server usw.). Limits können pro Anbieter angegeben werden. Anbieter verfügen über eine Eigenschaft, um die Eigenschaft für Zeitformateinstellungen auf Ihre Anforderungen zu ändern. Jeder Anbieter verfügt über ein Warteschlangenprotokoll, um Protokollelemente zu empfangen, kann jedoch deaktiviert werden, um direktes Schreiben/Senden zuzulassen. Es gibt einige Ereignisse für die Kontrolle der Anbieter (Onrestart, OncriticalError, Onsendlimits usw.).
Es gibt einige vordefinierte Anbieter, aber Sie können bei Bedarf einen eigenen Anbieter herstellen:
Dateianbieter:
Quick.logger.provider.files: Sendet die Protokollierung an eine Datei, verwaltet die Protokollrotation und Komprimierung.
Eigenschaften:
Konsolenanbieter:
Quick.Logger.Provider.Console: Sendet die Protokollierung an Konsole und ermöglicht farbige Eventypen und Zeitstempel.
Eigenschaften:
E -Mail -Anbieter:
Quick.logger.provider.Email: Sendet die Protokollierung per E -Mail.
Eigenschaften:
Ereignisanbieter:
Quick.logger.provider.Events: Ermöglicht ein Ereignis für jeden empfangenen Protokollelement.
Eigenschaften:
IDE -Debug -Anbieter:
Quick.logger.provider.idedebug: Sendet die Protokollierung an IDE -Debug -Nachrichten.
Eigenschaften:
Windows EventLog Anbieter:
Quick.logger.provider.EventLog: Sendet die Protokollierung an Windows EventLog.
Eigenschaften:
HTTP -Restanbieter:
Quick.logger.provider.rest: Sendet die Protokollierung an RestServer als JSON -Post.
Eigenschaften:
Redisanbieter:
Quick.logger.provider.Redis: Sendet die Protokollierung an redis server.
Eigenschaften:
Speicheranbieter:
Quick.logger.provider.Memory: Speichert die Anmeldung in den Speicher.
Eigenschaften:
Telegrammanbieter:
Quick.logger.provider.telegram: Protokoll als Nachricht an öffentlichen/privaten Telegrammkanal senden. (Sie brauchen Token eines Bots in diesem Kanal)
Eigenschaften:
Slack Anbieter:
Quick.logger.provider.slack: Das Protokoll als Nachricht an öffentlichen/privaten Slack -Kanal senden.
Eigenschaften:
Adodb -Anbieter:
Quick.logger.provider.AdoDB: Speichert Protokoll in ADO -Datenbank (MSSQL, MSAccess usw.).
Eigenschaften:
Syslog -Anbieter:
Quick.logger.provider.syslog: Sendet die Protokollierung an Syslog Server.
Eigenschaften:
Logstash -Anbieter:
Quick.logger.provider.logstash: Sendet die Protokollierung an den Logstash -Dienst.
Eigenschaften:
Elasticsarch -Anbieter:
Quick.logger.provider.Elasticsearch: Sendet die Protokollierung an den Elasticsearch -Server.
Eigenschaften:
InfluxDB -Anbieter:
Quick.logger.provider.influxDB: Sendet die Protokollierung an die InfluxDB -Datenbank.
Eigenschaften:
Graylog -Anbieter:
Quick.logger.provider.GrayLog: Sendet die Protokollierung an den Graylog -Dienst.
Eigenschaften:
Wachanbieter:
Quick.logger.provider.Sentry: Sendet die Protokollierung an Sentry Service.
Eigenschaften:
Twilio -Anbieter:
Quick.logger.provider.twilio: Sendet die Protokollierung an den Twilio -Service.
Eigenschaften:
Mit QuickLogger können Sie ausgewählt werden, welche Informationen abzumelden sollen. Sie können Hostname, Betriebssystemversion, AppName, Plattform oder Umgebung (Produktion, Test usw.), ThreadID, ProcessID und andere Felder (um mit mehreren Umgebungen oder Multidevices kompatibel zu sein) einbeziehen. Es ist deutlicher für eine Remote -Protokollierung wie Redis oder Ruhe, aber der Dateianbieter kann mit diesen Feldern einen Header schreiben, wenn Sie möchten.
Eigenschaften:
GlobalLogConsoleProvider.IncludedInfo := [iiAppName,iiHost,iiEnvironment,iiPlatform];
GlobalLogConsoleProvider.IncludedTags := [ ' MyTag1 ' , ' MyTag2 ' ];GlobalLogRedisProvider.CustomMsgOutput := True;
Log( ' {"level":"warn","text":"my text"} ' ,etInfo);GlobalLogConsoleProvider.CustomMsgOutput := True;
GlobalLogConsoleProvider.CustomFormatOutput := ' %{DATE} & %{TIME} - [%{LEVEL}] : %{MESSAGE} (%{MYTAG1}) ' ;QuickLogger verfügt über viele vordefinierte Variablen, aber Sie können Ihre eigenen Tags definieren, die im benutzerdefinierten Ausgangsformat verwendet werden können.
DateTime : Datum und Uhrprotokollelement treten auf
Datum : Datumsprotokollelement erfolgt
Zeit : Zeitprotokollelement tritt auf
Stufe : Level oder Ereignisypen
LevelInt : Level als numerisch
Nachricht : Nachricht an Logger gesendet
Umgebung : Anpassbare Variable (normalerweise Produktion, Test usw.)
Plattform : Anpassbare Variable (normalerweise Desktop, Mobile usw.)
AppName : Anpassbare Variable (standardmäßig als Dateiname ohne Erweiterung festgelegt)
Appversion : Anwendungsdateiversion
AppPath : Anwendungsweg Pfad
Hostname : Computername
Benutzername : Eingelogter Benutzername
Osversion : Betriebssystemversion
CPUCORES : Anzahl der CPU -Kerne
ThreaD : Thread -ID -Protokollelementsatz
Logger.LogTags[ ' MODULE ' ] := ' Admin ' ;
GlobalLogConsoleProvider.CustomMsgOutput := True;
GlobalLogConsoleProvider.CustomFormatOutput := ' %{DATE} & %{TIME} - [%{LEVEL}] : %{MESSAGE} (%{MODULE}) ' ;QuickLogger kann die Konfiguration vom/nach JSON -Format importieren oder exportieren. Diese Funktion ermöglicht eine einfache Möglichkeit, Ihre Anbieter vorkonfigurieren zu können.
// Load single provider from json file
GlobalLogRedisProvider.LoadFromFile( ' C:logfileprovider.json ' );
// Save all providers to json file
Logger.Providers.SaveToFile( ' C:loggerconfig.json ' );
// Load all providers from json string
Logger.Providers.FromJson(json); Example multiprovider config file:
{"GlobalLogConsoleProvider":
{
"ShowEventColors": true,
"ShowTimeStamp": true,
"UnderlineHeaderEventType": false,
"Name": "TLogConsoleProvider",
"LogLevel": "[etHeader,etInfo,etSuccess,etWarning,etError,etCritical,etException,etDone,etCustom1,etCustom2]",
"TimePrecission": true,
"MaxFailsToRestart": 2,
"MaxFailsToStop": 10,
"CustomMsgOutput": false,
"UsesQueue": true,
"Enabled": true,
"SendLimits": {
"TimeRange": "slNoLimit",
"LimitEventTypes": "[]",
"MaxSent": 0
},
"AppName": "QuickLoggerDemo",
"Environment": "",
"PlatformInfo": "",
"IncludedInfo": "[iiAppName,iiHost]"
},
"GlobalLogFileProvider":
{
"FileName": "D:\LoggerDemo.log",
"AutoFileNameByProcess": false,
"MaxRotateFiles": 3,
"MaxFileSizeInMB": 10,
"DailyRotate": false,
"RotatedFilesPath": "",
"CompressRotatedFiles": false,
"ShowEventType": true,
"ShowHeaderInfo": true,
"UnderlineHeaderEventType": false,
"AutoFlush": false,
"Name": "TLogFileProvider",
"LogLevel": "[etInfo,etSuccess,etWarning,etError,etCritical,etException]",
"TimePrecission": false,
"MaxFailsToRestart": 2,
"MaxFailsToStop": 10,
"CustomMsgOutput": false,
"UsesQueue": true,
"Enabled": true,
"SendLimits": {
"TimeRange": "slNoLimit",
"LimitEventTypes": "[etInfo]",
"MaxSent": 0
},
"AppName": "QuickLoggerDemo",
"Environment": "",
"PlatformInfo": "",
"IncludedInfo": "[iiAppName,iiHost,iiUserName,iiOSVersion]"
}
}
QuickLogger kann Ihre Anwendungsausnahmen erfassen. Es gibt 3 Ausnahmehaken. Sie müssen Ihrer Verwendungsklausel ein oder mehrere Einheiten hinzufügen:
Möchten Sie Delphi lernen oder Ihre Fähigkeiten verbessern? Learndelphi.org