
Bibliothèque Delphi (Delphi Xe6 - Delphi 12 Athènes) / Freepascal (Trunk) /. Net (Windows / Linux / Android / MacOSX / IOS) pour la connexion sur des fournisseurs multiples:
S'il vous plaît "Star" ce projet dans GitHub! Cela ne coûte que des aides à référencer le code. 
Si vous trouvez ce projet utile, veuillez envisager de faire un don.
10 février 2024 RAD Studio 12 pris en charge
22 novembre 2021 RAD Studio 11 Soutenu
30 mai 2020: RAD Studio 10.4 pris en charge
02 mai 2020: fournisseur de twilio
25 avril 2020: Format de sortie personnalisé et support de balises personnalisées
24 avril 2020: Proviseur Sentry
14 septembre 2019: Nouvelle information de journal incluse facultative: ThreadID.
11 septembre 2019: désormais inclus sur RAD Studio Getit Package Manager.
28 mars 2019: crochet des exceptions non gérées
28 mars 2019: amélioration des informations d'exception
16 mars 2019: fournisseur de grislog
28 février 2019: fournisseur d'influxdb
26 février 2019: fournisseur d'Elasticsearch
25 février 2019: fournisseur de logstash
19 février 2019: Delphi Linux Compatilibit.
10 février 2019: Firemonkey OSX & IOS Compatibilité.
08 décembre 2018: Configuration des fournisseurs de chargement / enregistrer de JSON unique
07 décembre 2018: Delphi 10.3 Rio Support
11 sept
04 juillet 2018: DLL natif et .net Warpper (grâce à Turrican)
29 juin 2018: config de / à JSON
15 juin 2018: Fournisseur de Syslog.
28 mai 2018: Fournisseur de relâche.
27 mai 2018: fournisseur ADODB.
27 mai 2018: fournisseur de télégramme.
25 mai 2018: MSG de sortie personnalisée.
22 mai 2018: Support des wapitis.
20 mai 2018: Support Delphinus.
20 mai 2018: Sortie JSON avec champs facultatifs pour les fournisseurs de redis et de repos.
17 mai 2018: compatibilité linux freepascal.
02 mai 2018: Compatibilité des fenêtres freepascal.
L'enregistreur rapide est asynchrone. Tous les journaux sont envoyés à une file d'attente et ne compromettent pas le flux de votre application. Vous pouvez définir de nombreux fournisseurs pour envoyer chaque entrée de journal et décider quel niveau accepte chacun.
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 gère automatiquement l'enregistrement et les fournisseurs. Logger et les fournisseurs ont une classe mondiale, créée automatiquement et publiée sur la fermeture de votre application. Il vous suffit d'ajouter des fournisseurs recherchés à votre clause d'utilisation.
Remarque: vous devez ajouter presque un fournisseur pour envoyer la journalisation.
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.
Il existe une gamme de TETYPES que vous pouvez définir dans vos journaux: Ethader, Etinfo, Etsuccess, Etwarning, Eterror, Etcritical, Etexception, Etdebug, Ettrace, ethustom1, ethustom2.
Chaque fournisseur d'enregistreur peut être configuré pour écouter un ou plusieurs de ces types d'événements et limiter le nombre de TETTATYPES reçus reçus pour une gamme de TEPTYPES par jour, heure, minute ou seconde pour éviter les problèmes de performances ou être spammé.
Les fournisseurs gèrent la sortie de vos journaux. La sortie peut être un fichier, une console, un e-mail, etc. Si un fournisseur échoue plusieurs fois à envoyer un journal, sera désactivé automatiquement (disque complet, serveur distant en bas, etc.). Les limites peuvent être spécifiées par fournisseur. Les fournisseurs ont une propriété pour modifier la propriété des paramètres de format de temps en vos besoins. Chaque fournisseur a un journal de file d'attente pour recevoir des éléments de journal, mais peut être désactivé pour permettre l'écriture / envoyer directe. Il y a des événements pour contrôler le travail des fournisseurs (onrestart, oncriticalerror, onsendlimits, etc.).
Il existe des fournisseurs prédéfinis, mais vous pouvez faire votre propre fournisseur si nécessaire:
Fournisseur de fichiers:
Quick.logger.provider.files: envoie la journalisation dans un fichier, gérant la rotation et la compression des journaux.
Propriétés:
Fournisseur de console:
Quick.logger.provider.console: envoie la journalisation à la console, permettant aux événements colorés et à l'horodatage.
Propriétés:
Fournisseur de courriels:
Quick.logger.provider.email: envoie la journalisation par e-mail.
Propriétés:
Fournisseur d'événements:
Quick.logger.Provider.Events: permet de lancer un événement pour chaque élément de journal reçu.
Propriétés:
Fournisseur de débogage ide:
Quick.logger.provider.atedebug: envoie la journalisation aux messages de débogage IDE.
Propriétés:
Fournisseur d'événements Windows:
Quick.logger.provider.eventlog: envoie la journalisation à Windows Eventlog.
Propriétés:
Fournisseur de repos http:
Quick.logger.provider.rest: envoie la journalisation à RestServer en tant que publication JSON.
Propriétés:
Fournisseur redis:
Quick.logger.provider.redis: envoie la journalisation au serveur Redis.
Propriétés:
Fournisseur de mémoire:
Quick.logger.provider.Memory: enregistre la connexion à la mémoire.
Propriétés:
Fournisseur de télégramme:
Quick.logger.provider.telegram: Envoyez le journal en tant que message au canal télégramme public / privé. (Vous avez besoin de jeton d'un bot dans ce canal)
Propriétés:
Fournisseur de mou:
Quick.logger.provider.slack: Envoyez le journal en tant que message à la chaîne Slack publique / privée.
Propriétés:
Fournisseur ADODB:
Quick.logger.provider.adodb: enregistre le journal de la base de données ADO (MSSQL, MSACCESS, etc.)
Propriétés:
Fournisseur de Syslog:
Quick.logger.provider.syslog: envoie la journalisation au serveur syslog.
Propriétés:
Fournisseur de Logstash:
Quick.logger.provider.logstash: envoie la journalisation au service Logstash.
Propriétés:
Fournisseur de recherche Elastics:
Quick.logger.provider.Elasticsearch: envoie la journalisation au serveur Elasticsearch.
Propriétés:
Fournisseur d'influxdb:
Quick.logger.provider.influxdb: envoie la journalisation à la base de données affluxDB.
Propriétés:
Fournisseur de Graylog:
Quick.logger.provider.graylog: envoie la journalisation au service Graylog.
Propriétés:
Proviseur de sentinelle:
Quick.logger.provider.Sentry: envoie la journalisation au service Sentry.
Propriétés:
Fournisseur de twilio:
Quick.logger.provider.twilio: envoie la journalisation au service Twilio.
Propriétés:
QuickLogger permet de sélectionner les informations à enregistrer. Vous pouvez inclure le nom d'hôte, la version OS, l'application, la plate-forme ou l'environnement (production, test, etc.), threadid, processId et autres champs (pour être compatible avec les multitienères ou les multidévices). Il est plus évident pour une journalisation éloignée comme Redis ou Rest, mais le fournisseur de fichiers peut écrire un en-tête avec ces champs si vous le souhaitez.
Propriétés:
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 a beaucoup de variables prédéfinies, mais vous pouvez définir vos propres balises à utiliser dans le format de sortie personnalisé.
DateTime : Date et Heure Journal L'élément
Date : Date du journal Élément se produit
Temps : L'élément de journal du temps se produit
Niveau : Niveau ou Type d'événement
Niveauint : niveau comme numérique
Message : message envoyé à Logger
Environnement : variable personnalisable (normalement production, test, etc.)
Plateforme : variable personnalisable (normalement de bureau, mobile, etc.)
Appname : variable personnalisable (par défaut définir en tant que nom de fichier sans extension)
Appversion : version du fichier d'application
Apppath : chemin d'exécution de l'application
Nom d'hôte : nom de l'ordinateur
Nom d'utilisateur : nom d'utilisateur enregistré
Osversion : version du système d'exploitation
CPOCORE : Nombre de cœurs de processeur
THERAID : jeu d'élément de journal d'identification du thread
Logger.LogTags[ ' MODULE ' ] := ' Admin ' ;
GlobalLogConsoleProvider.CustomMsgOutput := True;
GlobalLogConsoleProvider.CustomFormatOutput := ' %{DATE} & %{TIME} - [%{LEVEL}] : %{MESSAGE} (%{MODULE}) ' ;QuickLogger peut importer ou exporter la configuration du format de / vers JSON. Cette fonctionnalité permet un moyen facile de préconcerner vos fournisseurs.
// 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 peut capturer les exceptions de votre application. Il y a 3 crochets d'exception. Vous devez ajouter une ou plusieurs unités à votre clause d'utilisation:
Voulez-vous apprendre Delphi ou améliorer vos compétences? Learndelphi.org