
Delphi (Delphi XE6 - Delphi 12 Athens)/FreePascal (Trunk)/. NET (Windows/Linux/Android/MacOSX/iOS) สำหรับการเข้าสู่ระบบสำหรับผู้ให้บริการหลายราย:
ได้โปรด "Star" โครงการนี้ใน GitHub! ไม่มีค่าใช้จ่ายใด ๆ นอกจากช่วยอ้างอิงรหัส 
หากคุณพบว่าโครงการนี้มีประโยชน์โปรดพิจารณาบริจาค
10 ก.พ. 20124 RAD Studio 12 รองรับ
22 พ.ย. 20121 RAD Studio 11 รองรับ
30 พฤษภาคม 20120: รองรับ RAD Studio 10.4
02,2020 พฤษภาคม: ผู้ให้บริการ Twilio
25 เม.ย. 20120: รูปแบบเอาต์พุตที่กำหนดเองและการสนับสนุนแท็กที่กำหนดเอง
24 เม.ย. 20120: ผู้ให้บริการยาม
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: ความสมบูรณ์ของ Delphi Linux
10 ก.พ. 2019: ความเข้ากันได้ของ Firemonkey OSX & iOS
08 ธ.ค. 2018: โหลด/บันทึกผู้ให้บริการกำหนดค่าจาก JSON เดี่ยว
07 ธ.ค. 2018: Delphi 10.3 Rio Support
11 ก.ย. 2018: ความเข้ากันได้ของ Android Firemonkey ดีขึ้น
Jul 04,2018: DLL พื้นเมืองและ. Net Warpper (ขอบคุณ Turrican)
29,2018 มิ.ย. : config จาก/ถึง json
15 มิ.ย. 2018: ผู้ให้บริการ Syslog
28 พฤษภาคม 2018: ผู้ให้บริการหย่อน
27 พฤษภาคม 2018: ผู้ให้บริการ ADODB
27 พฤษภาคม 2018: ผู้ให้บริการโทรเลข
25 พฤษภาคม 2521: ข้อความเอาต์พุตที่กำหนดเอง
22 พฤษภาคม 2018: Elk Support
20 พฤษภาคม 2018: การสนับสนุน Delphinus
20 พฤษภาคม 2018: เอาต์พุต JSON พร้อมฟิลด์เสริมสำหรับผู้ให้บริการ REDIS และ REST
17 พฤษภาคม 2018: ความเข้ากันได้ของ FreePascal Linux
02,2018 พฤษภาคม: ความเข้ากันได้ของ Windows FreePascal
Logger ด่วนเป็นแบบอะซิงโครนัส บันทึกทั้งหมดจะถูกส่งไปยังคิวและไม่ส่งผลต่อการไหลของแอปพลิเคชันของคุณ คุณสามารถกำหนดผู้ให้บริการจำนวนมากเพื่อส่งรายการบันทึกทุกรายการและตัดสินใจว่าระดับใดยอมรับทุกคน
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 และผู้ให้บริการมีคลาสระดับโลกสร้างและเปิดตัวในแอพปิดของคุณ คุณจะต้องเพิ่มผู้ให้บริการที่ต้องการในประโยคการใช้งานของคุณ
หมายเหตุ: คุณต้องเพิ่มผู้ให้บริการเกือบหนึ่งรายเพื่อส่งการบันทึก
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.
มีช่วงของ EventTypes ที่คุณสามารถกำหนดได้ในบันทึกของคุณ: Etheader, Etinfo, Etsuccess, Etwarning, Eterror, Etcritical, Etexception, Etdebug, Ettrace, Etcustom1, etcustom2
ผู้ให้บริการ logger ทุกคนสามารถกำหนดค่าให้ฟังประเภทเหตุการณ์เหล่านี้อย่างน้อยหนึ่งประเภทและ จำกัด จำนวนกิจกรรมที่ได้รับสำหรับช่วงของ EventTypes ต่อวันชั่วโมงชั่วโมงนาทีหรือวินาทีเพื่อหลีกเลี่ยงปัญหาประสิทธิภาพหรือถูกสแปม
ผู้ให้บริการจัดการเอาต์พุตสำหรับบันทึกของคุณ เอาต์พุตอาจเป็นไฟล์คอนโซลอีเมล ฯลฯ หากผู้ให้บริการล้มเหลวหลายครั้งในการส่งบันทึกจะถูกปิดใช้งานโดยอัตโนมัติ (ดิสก์เต็มรูปแบบเซิร์ฟเวอร์ระยะไกลลง ฯลฯ ) ขีด จำกัด สามารถระบุได้ต่อผู้ให้บริการ ผู้ให้บริการมีคุณสมบัติในการเปลี่ยนคุณสมบัติการตั้งค่ารูปแบบเวลาเป็นความต้องการของคุณ ผู้ให้บริการทุกรายมีบันทึกคิวเพื่อรับรายการบันทึก แต่สามารถปิดใช้งานได้เพื่ออนุญาตให้เขียน/ส่งโดยตรง มีบางเหตุการณ์ในการควบคุมผู้ให้บริการทำงาน (onrestart, oncriticalerror, onsendlimits ฯลฯ )
มีผู้ให้บริการที่กำหนดไว้ล่วงหน้า แต่คุณสามารถสร้างผู้ให้บริการของคุณเองได้หากจำเป็น:
ผู้ให้บริการไฟล์:
Quick.logger.provider.files: ส่งการบันทึกไปยังไฟล์จัดการการหมุนบันทึกการหมุนและการบีบอัด
คุณสมบัติ:
ผู้ให้บริการคอนโซล:
Quick.logger.provider.console: ส่งการบันทึกไปยังคอนโซลออกมาช่วยให้มี eventypes สีและการประทับเวลา
คุณสมบัติ:
ผู้ให้บริการอีเมล:
Quick.logger.provider.email: ส่งการบันทึกทางอีเมล
คุณสมบัติ:
ผู้ให้บริการกิจกรรม:
Quick.logger.provider.events: อนุญาตให้โยนเหตุการณ์สำหรับทุกรายการบันทึกที่ได้รับ
คุณสมบัติ:
ผู้ให้บริการดีบัก IDE:
Quick.logger.provider.idedebug: ส่งการบันทึกไปยัง IDE Debug Messages
คุณสมบัติ:
ผู้ให้บริการ Windows EventLog:
Quick.logger.provider.eventlog: ส่งการบันทึกไปยัง Windows EventLog
คุณสมบัติ:
ผู้ให้บริการ HTTP REST:
Quick.logger.provider.rest: ส่งการบันทึกไปยัง Restserver เป็นโพสต์ JSON
คุณสมบัติ:
ผู้ให้บริการ Redis:
Quick.logger.provider.redis: ส่งการบันทึกไปยังเซิร์ฟเวอร์ Redis
คุณสมบัติ:
ผู้ให้บริการหน่วยความจำ:
Quick.logger.provider.memory: บันทึกการบันทึกลงในหน่วยความจำ
คุณสมบัติ:
ผู้ให้บริการโทรเลข:
Quick.logger.provider.telegram: ส่งบันทึกเป็นข้อความไปยังช่องโทรเลขสาธารณะ/ส่วนตัว (คุณต้องมีโทเค็นของบอทในช่องนี้)
คุณสมบัติ:
ผู้ให้บริการหย่อน:
Quick.logger.provider.slack: ส่งบันทึกเป็นข้อความไปยังช่อง Slack สาธารณะ/ส่วนตัว
คุณสมบัติ:
ผู้ให้บริการ ADODB:
Quick.logger.provider.adodb: บันทึกบันทึกไปยังฐานข้อมูล ADO (MSSQL, Msaccess ฯลฯ )
คุณสมบัติ:
ผู้ให้บริการ syslog:
Quick.logger.provider.syslog: ส่งการบันทึกไปยังเซิร์ฟเวอร์ syslog
คุณสมบัติ:
ผู้ให้บริการ logstash:
Quick.logger.provider.logstash: ส่งการบันทึกไปยังบริการ Logstash
คุณสมบัติ:
ผู้ให้บริการ Elasticsearch:
Quick.logger.provider.elasticsearch: ส่งการบันทึกไปยังเซิร์ฟเวอร์ Elasticsearch
คุณสมบัติ:
ผู้ให้บริการ InfluxDB:
Quick.logger.provider.influxdb: ส่งการบันทึกไปยังฐานข้อมูล INFLUXDB
คุณสมบัติ:
ผู้ให้บริการ Graylog:
Quick.logger.provider.graylog: ส่งการบันทึกไปยังบริการ Graylog
คุณสมบัติ:
ผู้ให้บริการ Sentry:
Quick.logger.provider.sentry: ส่งการบันทึกไปยังบริการ Sentry
คุณสมบัติ:
ผู้ให้บริการ Twilio:
Quick.logger.provider.twilio: ส่งการบันทึกไปยังบริการ Twilio
คุณสมบัติ:
Quicklogger อนุญาตให้เลือกข้อมูลที่จะบันทึก คุณสามารถรวมชื่อโฮสต์, เวอร์ชัน OS, AppName, แพลตฟอร์มหรือสภาพแวดล้อม (การผลิต, การทดสอบ, ฯลฯ ), 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
Levelint : ระดับเป็นตัวเลข
ข้อความ : ข้อความที่ส่งไปยัง Logger
สภาพแวดล้อม : ตัวแปรที่ปรับแต่งได้ (ปกติการผลิตการทดสอบ ฯลฯ )
แพลตฟอร์ม : ตัวแปรที่ปรับแต่งได้ (โดยปกติเดสก์ท็อปมือถือ ฯลฯ )
AppName : ตัวแปรที่ปรับแต่งได้ (ตามชุดเริ่มต้นเป็นชื่อไฟล์โดยไม่ต้องขยาย)
Appversion : ไฟล์แอปพลิเคชันเวอร์ชัน
AppPath : Application Run Path
ชื่อโฮสต์ : ชื่อคอมพิวเตอร์
ชื่อผู้ใช้ : บันทึกชื่อผู้ใช้
Osversion : เวอร์ชัน OS
CPUCORES : จำนวนคอร์ CPU
threaid : รายการบันทึก ID เธรด ID
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 ตะขอยกเว้น คุณต้องเพิ่มหนึ่งหน่วยขึ้นไปในประโยคการใช้งานของคุณ:
คุณต้องการเรียนรู้ Delphi หรือพัฒนาทักษะของคุณหรือไม่? LearnDelphi.org