
Delphi (Delphi XE6 - Delphi 12 Athena)/FreePascal (trunk)/. NET (Windows/Linux/Android/Macosx/IOS) Perpustakaan untuk masuk pada penyedia multi
Tolong "Bintang" proyek ini di GitHub! Tidak ada biaya apa pun selain membantu merujuk kode. 
Jika Anda menemukan proyek ini bermanfaat, pertimbangkan untuk memberikan sumbangan.
Feb 10.2024 Rad Studio 12 didukung
22 Nov.2021 Rad Studio 11 didukung
30 Mei 2010: Rad Studio 10.4 didukung
02 Mei.2020: Penyedia Twilio
25 April2020: Format Output Kustom & Dukungan Tag Kustom
24 Apr.2020: Penyedia Sentry
14 Sep2019: Opsional baru disertakan info log: ThreadID.
11 10.2019: Sekarang termasuk di Rad Studio Getit Package Manager.
28 Maret 2019: Pengait Pengecualian Tanpa Tangan
28 Maret 2019: Info pengecualian yang lebih baik
16 Maret 2019: Penyedia Graylog
28 Februari 2019: penyedia influxdb
26 Feb 2019: Penyedia Elasticsearch
25 Februari 2019: Penyedia logstash
19 Februari 2019: Kompatilibitas Delphi Linux.
10 Feb Feb: Kompatibilitas Firemonkey OSX & IOS.
08 Desember 2018: Muat/Simpan Penyedia Konfigurasi dari JSON tunggal
07 Des 2018: Delphi 10.3 Dukungan Rio
11 10.2018: Kompatibilitas Android Firemonkey ditingkatkan
Jul 04.2018: Dll asli dan .Net Warpper (terima kasih kepada Turrican)
29 Jun 2018: Konfigurasi dari/ke JSON
15 Jun 2018: Penyedia Syslog.
28 Mei 2018: Penyedia Slack.
27 Mei 2018: Penyedia ADODB.
27 Mei 2018: Penyedia telegram.
25 Mei 2018: MSG Output Kustom.
22 Mei 2018: Dukungan rusa.
20 Mei 2018: Dukungan Delphinus.
20 Mei 2018: Output JSON dengan bidang opsional untuk penyedia Redis dan REST.
17 Mei 2018: Kompatibilitas Linux Freepascal.
Mei 02.2018: Kompatibilitas Windows FreePascal.
Logger cepat tidak sinkron. Semua log dikirim ke antrian dan jangan kompromi aliran aplikasi Anda. Anda dapat mendefinisikan banyak penyedia untuk mengirim setiap entri log dan memutuskan tingkat apa yang menerima setiap orang.
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 mengelola Logger dan Penyedia secara otomatis. Logger dan penyedia memiliki kelas global, Auto dibuat dan dirilis di penutupan aplikasi Anda. Anda hanya perlu menambahkan penyedia yang dicari ke klausa penggunaan Anda.
Catatan: Anda perlu menambahkan hampir satu penyedia untuk mengirim logging.
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.
Ada berbagai tipe acara yang dapat Anda definisikan di log Anda: etheader, etinfo, etsuccess, etwarning, eterror, etcritical, etexception, etdebug, ettrace, etcustom1, etcustom2.
Setiap penyedia logger dapat dikonfigurasi untuk mendengarkan satu atau lebih dari jenis acara ini dan membatasi jumlah eventtypes yang diterima untuk serangkaian eventTtipe per hari, jam, menit atau kedua untuk menghindari masalah kinerja atau dispam.
Penyedia mengelola output untuk log Anda. Output dapat berupa file, konsol, email, dll. Jika penyedia gagal berkali -kali untuk mengirim log, akan dinonaktifkan secara otomatis (disk penuh, server jarak jauh ke bawah, dll). Batas dapat ditentukan per penyedia. Penyedia memiliki properti untuk mengubah properti pengaturan format waktu sesuai kebutuhan Anda. Setiap penyedia memiliki log antrian untuk menerima item log, tetapi dapat dinonaktifkan untuk mengizinkan penulisan/pengiriman langsung. Ada beberapa peristiwa untuk mengendalikan pekerjaan penyedia (OnRestart, OnCriticalError, Onsendlimits, dll).
Ada beberapa penyedia yang telah ditentukan, tetapi Anda dapat membuat penyedia sendiri jika diperlukan:
Penyedia file:
Quick.logger.provider.files: Mengirim logging ke file, mengelola rotasi log dan kompresi.
Properti:
Penyedia konsol:
Quick.logger.provider.console: Mengirim logging ke konsol keluar, memungkinkan eventypes berwarna dan cap waktu.
Properti:
Penyedia email:
Quick.logger.provider.email: Mengirim logging melalui email.
Properti:
Penyedia acara:
Quick.logger.provider.events: memungkinkan melempar acara untuk setiap item log yang diterima.
Properti:
Penyedia Debug IDE:
Quick.logger.provider.idedebug: Mengirim logging ke pesan debug IDE.
Properti:
Penyedia Eventlog Windows:
Quick.logger.provider.eventlog: Mengirim logging ke Windows EventLog.
Properti:
Penyedia Istirahat HTTP:
Quick.logger.provider.rest: Mengirim logging ke restserver sebagai posting JSON.
Properti:
Penyedia Redis:
Quick.logger.provider.redis: Mengirim logging ke server redis.
Properti:
Penyedia memori:
Quick.logger.provider.Memory: Menyimpan logging ke dalam memori.
Properti:
Penyedia Telegram:
Quick.logger.provider.telegram: Kirim log sebagai pesan ke saluran telegram publik/pribadi. (Anda perlu tanda bot di saluran ini)
Properti:
Penyedia Slack:
Quick.logger.provider.slack: Kirim log sebagai pesan ke saluran slack publik/pribadi.
Properti:
Penyedia ADODB:
Quick.logger.provider.adodb: menyimpan log ke database ADO (mssql, msaccess, dll.)
Properti:
Penyedia Syslog:
Quick.logger.provider.syslog: Mengirim logging ke server syslog.
Properti:
Penyedia logstash:
Quick.logger.provider.logstash: Mengirimkan logging ke layanan logstash.
Properti:
Penyedia Elasticsearch:
Quick.logger.provider.elasticsearch: Mengirimkan logging ke server Elasticsearch.
Properti:
Penyedia influxdb:
Quick.logger.provider.influxdb: Mengirim logging ke database influxdb.
Properti:
Penyedia Graylog:
Quick.logger.provider.graylog: Mengirim logging ke layanan Graylog.
Properti:
Penyedia penjaga:
Quick.logger.provider.sentry: Mengirim logging ke layanan penjaga.
Properti:
Penyedia Twilio:
Quick.logger.provider.twilio: Mengirim logging ke layanan twilio.
Properti:
QuickLogger memungkinkan untuk memilih info apa yang akan log. Anda dapat menyertakan nama host, versi OS, APPName, platform atau lingkungan (produksi, tes, dll), threadId, prosesid, dan bidang lainnya (agar kompatibel dengan multienvironments atau multidevices). Ini lebih jelas untuk penebangan jarak jauh seperti Redis atau istirahat, tetapi penyedia file dapat menulis header dengan bidang ini jika Anda suka.
Properti:
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 memiliki banyak variabel yang telah ditentukan, tetapi Anda dapat menentukan tag Anda sendiri untuk digunakan dalam format output khusus.
Datetime : Item Log Tanggal & Waktu terjadi
Tanggal : Item log tanggal terjadi
Waktu : Item log waktu terjadi
Level : Level atau Evenype
Levelint : level sebagai numerik
Pesan : Pesan Dikirim ke Logger
Lingkungan : Variabel yang dapat disesuaikan (biasanya produksi, tes, dll)
Platform : Variabel yang dapat disesuaikan (biasanya desktop, seluler, dll)
AppName : Variabel yang dapat disesuaikan (secara default ditetapkan sebagai nama file tanpa ekstensi)
Appversion : Versi File Aplikasi
AppPath : Path Run Application
Nama host : Nama komputer
Nama pengguna : Nama pengguna yang dicatat
Osversion : Versi OS
CPUCORES : Jumlah inti CPU
Threaid : Set Item Log ID Thread
Logger.LogTags[ ' MODULE ' ] := ' Admin ' ;
GlobalLogConsoleProvider.CustomMsgOutput := True;
GlobalLogConsoleProvider.CustomFormatOutput := ' %{DATE} & %{TIME} - [%{LEVEL}] : %{MESSAGE} (%{MODULE}) ' ;QuickLogger dapat mengimpor atau mengekspor konfigurasi dari/ke format JSON. Fitur ini memungkinkan cara mudah untuk mengonfigurasikan penyedia Anda.
// 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 dapat menangkap pengecualian aplikasi Anda. Ada 3 kait pengecualian. Anda perlu menambahkan satu atau lebih unit ke klausa penggunaan Anda:
Apakah Anda ingin belajar Delphi atau meningkatkan keterampilan Anda? learndelphi.org