
Delphi (Delphi XE6 - Delphi 12 Athens)/Freepascal (Trunk)/.
يرجى "نجمة" هذا المشروع في جيثب! لا يكلف شيئًا سوى الرجوع إلى الرمز. 
إذا وجدت هذا المشروع مفيدًا ، فيرجى التفكير في تقديم التبرع.
10 فبراير 2024 Rad Studio 12 مدعوم
نوفمبر 22،2021 مدعوم استوديو Rad 11
30 مايو 2020: Rad Studio 10.4 مدعوم
02،2020 مايو: مزود Twilio
25 أبريل 2020: تنسيق الإخراج المخصص ودعم العلامات المخصصة
24 أبريل 2020: مزود الحارس
14 سبتمبر 2019: اختياري جديد تضمين معلومات السجل: ThreadId.
11 سبتمبر 2019: تم تضمين الآن على Rad Studio Getit Package Manager.
28 مارس 2019: خطاف استثناءات غير معطلة
28 مارس 2019: معلومات استثناء محسنة
مارس 16،2019: مزود Graylog
28 فبراير 2019: مزود influxdb
26 فبراير 2019: مزود Elasticsearch
25 فبراير 2019: مزود Logstash
19 فبراير 2019: دلفي لينكس التوافق.
10 فبراير 2019: توافق Firemonkey OSX و IOS.
ديسمبر 08،2018: تحميل/حفظ مقدمي الخدمات من JSON الفردي
ديسمبر 07،2018: دعم دلفي 10.3 ريو
11 سبتمبر 2018: تحسن توافق Firemonkey Android
يوليو 04،2018: DLL و .NET Warpper الأصليين (بفضل Turrican)
29 يونيو 2018: التكوين من/إلى JSON
15 يونيو 2018: مزود Syslog.
28 مايو 2018: مزود سلاك.
27 مايو 2018: مزود ADODB.
27 مايو 2018: مزود برقية.
25 مايو 2018: مخصص مخصص MSG.
22 مايو 2018: دعم الأيائل.
20 مايو 2018: دعم دلفينوس.
20 مايو 2018: إخراج JSON مع حقول اختيارية ل Redis و Resters.
17 مايو 2018: توافق Linux Freepascal.
مايو 02،2018: توافق Windows Freepascal.
المسجل السريع غير متزامن. يتم إرسال جميع السجلات إلى قائمة انتظار ولا تضعف تدفق التطبيق الخاص بك. يمكنك تحديد العديد من مقدمي الخدمات لإرسال كل إدخال سجل وتحديد المستوى الذي يقبل كل واحد.
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 المسجل ومقدمي الخدمات تلقائيًا. لدى Logger and Serviders فئة عالمية ، تم إنشاؤها تلقائيًا وإصدارها على التطبيق الخاص بك. تحتاج فقط إلى إضافة مقدمي الخدمات المطلوبين إلى شرط استخداماتك.
ملاحظة: تحتاج إلى إضافة مزود واحد تقريبًا لإرسال التسجيل.
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.
هناك مجموعة من أنواع الحدث التي يمكنك تحديدها في سجلاتك: Etheader ، Etinfo ، Etsuccess ، etwarning ، eterror ، etcritical ، etexception ، etdebug ، ettrace ، etcustom1 ، etcustom2.
يمكن تكوين كل مزود مسجل للاستماع لواحد أو أكثر من أنواع الأحداث هذه والحد من عدد أنواع الأحداث المستلمة المستلمة لمجموعة من أنواع الأحداث في اليوم أو الساعة أو الدقيقة أو الثانية لتجنب مشاكل الأداء أو أن تكون غير مرغوب فيها.
يدير مقدمو الخدمات الإخراج لسجلاتك. يمكن أن يكون الإخراج ملفًا أو وحدة تحكم أو بريد إلكتروني وما إلى ذلك. إذا فشل المزود عدة مرات في إرسال سجل ، فسيتم تعطيله تلقائيًا (القرص الكامل ، الخادم البعيد لأسفل ، إلخ). يمكن تحديد الحدود لكل مزود. لدى مقدمي الخدمات خاصية لتغيير خاصية إعدادات تنسيق الوقت إلى احتياجاتك. كل مزود لديه سجل قائمة انتظار لاستلام عناصر السجل ، ولكن يمكن تعطيله للسماح للكتابة/إرسال مباشرة. هناك بعض الأحداث للسيطرة على أعمال مقدمي الخدمات (onrestart ، oncriticalerror ، onsendlimits ، إلخ).
هناك بعض مقدمي الخدمات المحددة مسبقًا ، ولكن يمكنك عمل مزودك الخاص إذا لزم الأمر:
مزود الملف:
Quick.logger.provider.files: يرسل التسجيل إلى ملف ، وإدارة دوران السجل والضغط.
ملكيات:
مزود وحدة التحكم:
Quick.logger.provider.console: يرسل تسجيل التسجيل إلى وحدة التحكم في الخارج ، مما يسمح بالأحداث الملونة والطابع الزمني.
ملكيات:
مزود البريد الإلكتروني:
Quick.logger.provider.email: يرسل تسجيل الدخول عبر البريد الإلكتروني.
ملكيات:
مزود الأحداث:
Quick.logger.provider.events: يسمح بإلقاء حدث لكل عنصر سجل تم استلامه.
ملكيات:
IDE Debug Provider:
Quick.logger.provider.idedebug: يرسل تسجيل إلى رسائل تصحيح IDE.
ملكيات:
مزود Windows EventLog:
Quick.logger.provider.eventlog: يرسل التسجيل إلى Windows EventLog.
ملكيات:
HTTP REST مزود:
Quick.logger.provider.rest: يرسل تسجيل الدخول إلى RestServer كمنشور JSON.
ملكيات:
Redis Provider:
Quick.logger.provider.redis: يرسل التسجيل إلى Redis Server.
ملكيات:
مزود الذاكرة:
Quick.logger.provider.memory: يحفظ التسجيل في الذاكرة.
ملكيات:
مزود البرقية:
Quick.logger.provider.telegram: أرسل السجل كرسالة إلى قناة Telegram العامة/الخاصة. (تحتاج إلى رمز روبوت في هذه القناة)
ملكيات:
مزود الركود:
Quick.logger.provider.slack: أرسل السجل كرسالة إلى قناة Slack العامة/الخاصة.
ملكيات:
مزود ADODB:
Quick.logger.provider.adodb: يحفظ السجل إلى قاعدة بيانات ADO (MSSQL ، MSAccess ، إلخ ..)
ملكيات:
مزود Syslog:
Quick.logger.provider.syslog: يرسل التسجيل إلى Syslog Server.
ملكيات:
مزود Logstash:
Quick.logger.provider.logstash: يرسل التسجيل إلى خدمة LogStash.
ملكيات:
مزود Elasticsearch:
Quick.logger.provider.elasticsearch: يرسل التسجيل إلى خادم Elasticsearch.
ملكيات:
مزود influxdb:
Quick.logger.provider.influxdb: يرسل تسجيل الدخول إلى قاعدة بيانات influxDB.
ملكيات:
مزود Graylog:
Quick.logger.provider.graylog: يرسل التسجيل إلى خدمة GrayLog.
ملكيات:
مزود الحارس:
Quick.logger.provider.sentry: يرسل التسجيل إلى خدمة Sentry.
ملكيات:
مزود Twilio:
Quick.logger.provider.twilio: يرسل التسجيل إلى خدمة Twilio.
ملكيات:
يسمح Quicklogger بتحديد المعلومات التي يجب تسجيلها. يمكنك تضمين اسم المضيف أو إصدار نظام التشغيل أو اسم AppName أو Platform أو Begity (الإنتاج ، الاختبار ، إلخ) ، ThreadId ، ProcessID وغيرها من الحقول (لتكون متوافقة مع البيئات المتعددة أو متعددة الأدوات). من الواضح أن تسجيلًا عن بُعد مثل Redis أو REST ، ولكن يمكن أن يكون مزود الملفات كتابة رأس مع هذه الحقول إذا أردت.
ملكيات:
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 على الكثير من المتغيرات المحددة مسبقًا ، ولكن يمكنك تحديد العلامات الخاصة بك لاستخدامها في تنسيق الإخراج المخصص.
DateTime : يحدث عنصر سجل التاريخ والوقت
التاريخ : حدوث عنصر سجل التاريخ
الوقت : حدوث عنصر سجل الوقت
المستوى : المستوى أو eventype
المستوى : مستوى رقمي
الرسالة : رسالة تم إرسالها إلى Logger
البيئة : متغير قابل للتخصيص (عادة الإنتاج ، الاختبار ، إلخ)
النظام الأساسي : متغير قابل للتخصيص (عادة سطح المكتب ، الجوال ، إلخ)
AppName : متغير قابل للتخصيص (عرض افتراضيًا كاسم ملف بدون امتداد)
APPVERVENT : إصدار ملف التطبيق
AppPath : Application Run Path
اسم المضيف : اسم الكمبيوتر
اسم المستخدم : اسم المستخدم المسجل
التباين : إصدار OS
cpucores : عدد نوى وحدة المعالجة المركزية
Threaid : تعيين عنصر سجل معرف الموضوع
Logger.LogTags[ ' MODULE ' ] := ' Admin ' ;
GlobalLogConsoleProvider.CustomMsgOutput := True;
GlobalLogConsoleProvider.CustomFormatOutput := ' %{DATE} & %{TIME} - [%{LEVEL}] : %{MESSAGE} (%{MODULE}) ' ;يمكن لـ Quicklogger استيراد أو تصدير التكوين من/إلى تنسيق JSON. تتيح هذه الميزة طريقة سهلة لتكوين مقدميك.
// 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 التقاط استثناءات التطبيق الخاصة بك. هناك 3 خطافات استثناء. تحتاج إلى إضافة وحدة واحدة أو أكثر إلى شرط استخداماتك:
هل تريد تعلم دلفي أو تحسين مهاراتك؟ LearnDelphi.org