
- บราซิลโปรตุเกส ภาษาอังกฤษ |
Datalogger ได้รับการออกแบบให้เป็นไลบรารีบันทึกอย่างง่ายที่สนับสนุนโดยหลาย รายการ
การสนับสนุน: [email protected]
$ boss install github.com/dliocode/dataloggerเพิ่มโฟลเดอร์ต่อไปนี้ลงในโครงการของคุณใน โครงการ> ตัวเลือก> Delphi Compiler> เส้นทางค้นหา
../src/Core
../src/Providers
มีสองวิธีที่แตกต่างกันในการใช้ datalogger: โดยตรงโดย Logger หรืออินสแตนซ์ TDataLogger ของคุณเอง
ตัวอย่าง
ครั้งแรกมีจุดประสงค์เพื่อเป็นบันทึกที่ใช้ร่วมกันที่สะดวกเพื่อใช้ตลอดทั้งแอพของคุณหากคุณเลือก
uses DataLogger;
ผู้ให้บริการ ทำหน้าที่เก็บบันทึกไว้เป็นหลัก แต่ละอินสแตนซ์ของ tdatalogger สามารถมีการกำหนด ค่า หลายรายการ
ที่นี่เรามีรายการ 60 ให้ พร้อม:
| ชื่อ | ใช้ | ตัวอย่าง |
|---|---|---|
| AWS CloudWatch | datalogger.provider.aws.cloudwatch | AWS CloudWatch |
| สัจพจน์ | datalogger.provider.axiom | สัจพจน์ |
| callmebot | datalogger.provider.callmebot.whatsapp | callmebot |
| ปลอบประโลม | datalogger.provider.console | ปลอบประโลม คอนโซลง่ายๆ |
| ถ่านหิน | datalogger.provider.cralogix | ถ่านหิน |
| CSV | datalogger.provider.csv | CSV |
| Datadatog | datalogger.provider.dateg | Datadatog |
| การเก็บข้อมูล | datalogger.provider.datalust | การเก็บข้อมูล |
| ความไม่ลงรอยกัน | datalogger.provider.discord.webhook | ความไม่ลงรอยกัน |
| Dynatrace | วันที่ logger.provider.dynatrace | Dynatrace |
| Elasticsearch | datalogger.provider.elasticsearch | Elasticsearch |
| สอนเขา | datalogger.provider.elmah | สอนเขา |
| อีเมล | datalogger.provider.email | อีเมล |
| บันทึกเหตุการณ์ | datalogger.provider.eventlog | eventlog |
| เหตุการณ์ | datalogger.provider.events | เหตุการณ์ กิจกรรม - พร้อมชุดข้อมูล กิจกรรม - กับ sqlite |
| ฐานไฟ | วันที่ logger.provider.firebase.realtime ฐานข้อมูล | ฐานไฟ |
| ช่องว่าง | datalogger.provider.grafana.loki datalogger.provider.grafana.oncall.webhook | ช่องว่าง |
| graphjson | datalogger.provider.graphjson | graphjson |
| สีเทา | datalogger.provider.graylog | สีเทา |
| HTML | datalogger.provider.html | HTML |
| กล่องรายการ | datalogger.provider.listbox | กล่องรายการ |
| ListView | datalogger.provider.listview | ListView |
| ล็อกอิน | datalogger.provider.logentries | ล็อกอิน |
| logflare | datalogger.provider.logflare | logflare |
| อย่างล็อกอิน | datalogger.provider.loggly | อย่างล็อกอิน |
| บันทึก | datalogger.provider.logstash | บันทึก |
| logthal | datalogger.provider.logtail | logthal |
| Logz | datalogger.provider.logz | Logz |
| Mailgun | datalogger.provider.mailgun.api | Mailgun |
| MailJet | datalogger.provider.mailjet.api | MailJet |
| Mattemost | datalogger.provider.mattemet datalogger.provider.mattemost.webhooks | Mattemost แมทเทอร์โมน |
| บันทึก | datalogger.provider.memo | บันทึก ไฟล์บันทึกและข้อความ บันทึก - ข้อผิดพลาดเท่านั้น/vcl |
| หน่วยความจำ | datalogger.provider.memory | หน่วยความจำ |
| mezma | datalogger.provider.mezmo | mezma |
| MongoDB | datalogger.provider.mongoDb.cloud | MongoDB |
| ntfy | datalogger.provider.ntfy | ntfy |
| ใหม่ | datalogger.provider.newrelic | ใหม่ |
| การแจ้ง | datalogger.provider.notification | การแจ้ง |
| ใหม่ | datalogger.provider.novu | ใหม่ |
| outputDebugString | datalogger.provider.outputdebugstring | outputDebugString |
| ผ้ากระดาษ | datalogger.provider.papertrail | ผ้ากระดาษ |
| ตราประทับ | datalogger.provider.postmark.api | ตราประทับ |
| RabbitMQ | datalogger.provider.rabbitmq | RabbitMQ |
| Redis | datalogger.provider.redis | Redis |
| พักผ่อน | datalogger.provider.rest.httpclient datalogger.provider.rest.indy datalogger.provider.rest.nethttpclient | พักผ่อน |
| ความร่ำรวย | datalogger.provider.richedit | ความร่ำรวย |
| รอบ | datalogger.provider.sematext.logs | การล็อกเซมเท็กซ์ |
| Sendchamp | datalogger.provider.sendchamp.sms datalogger.provider.sendchamp.whatsapp | ผู้ส่ง |
| ผู้ส่ง | datalogger.provider.sendemail | ผู้ส่ง |
| SendGrid | datalogger.provider.sendgrid.webapi | sendgridwebapi |
| หย่อน | datalogger.provider.slack.webapi datalogger.provider.slack.webhook | หย่อน |
| สาดน้ำ | datalogger.provider.splunk | สาดน้ำ |
| ซ็อกเก็ต | datalogger.provider.socket | ซ็อกเก็ต |
| เกี่ยวกับการทำศาลา | datalogger.provider.sumologic | เกี่ยวกับการทำศาลา |
| syslog | datalogger.provider.syslog datalogger.provider.syslog.indy | syslog Syslog Indy |
| โทรเลข | datalogger.provider.telegram | โทรเลข |
| Textfile | datalogger.provider.textfile | Textfile |
| ultramsg | datalogger.provider.ultramsg.whatsapp | ultramsg |
| ทวิตเตอร์ | datalogger.provider.twilio.sms datalogger.provider.twilio.whatsapp | ทวิตเตอร์ |
| z-api | datalogger.provider.zapi.whatsapp | z-api |
การพึ่งพาเหล่านี้เกิดขึ้นเมื่อ มี การใช้งาน
| ผู้ให้บริการ | พึ่งพา |
|---|---|
| datalogger.provider.rabbitmq | RabbitMQ |
| datalogger.provider.redis | Redis |
| datalogger.provider.sendemail | ผู้ส่ง |
จำเป็นต้องได้รับอนุญาต ACCEST_WIFI_STATE : ใช้เพื่อจับภาพที่อยู่ MAC ของอุปกรณ์
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
Logger
.Trace( ' My Trace ' )
.Debug( ' My Debug ' )
.Info( ' My Info ' )
.Warn( ' My Warn ' )
.Error( ' My Error ' )
.Success( ' My Success ' )
.Fatal( ' My Fatal ' )
.Custom( ' Custom Level ' , ' My Custom ' )
;
// or
Logger
.T( ' My Trace ' )
.D( ' My Debug ' )
.I( ' My Info ' )
.W( ' My Warn ' )
.E( ' My Error ' )
.S( ' My Success ' )
.F( ' My Fatal ' )
.C( ' Custom Level ' , ' My Custom ' )
;
Readln;
end . uses
DataLogger,
DataLogger.Provider.Console;
var
LCustomLogger: TDataLogger;
begin
LCustomLogger := TDataLogger.Builder;
LCustomLogger.AddProvider(TProviderConsole.Create);
LCustomLogger
.Trace( ' My Trace ' )
.Debug( ' My Debug ' )
.Info( ' My Info ' )
.Warn( ' My Warn ' )
.Error( ' My Error ' )
.Success( ' My Success ' )
.Fatal( ' My Fatal ' )
.Custom( ' Custom Level ' , ' My message with custom level ' );
Readln;
end . uses
DataLogger,
DataLogger.Simple,
DataLogger.Provider.Console;
begin
// Defini o provider
Logger.AddProvider(TProviderConsole.Create);
// Defini no DataloggerSimple a instância do log a ser utilizado
TDataLoggerSimple.SetDataLogger(Logger);
// Só usar o modo simples;
Trace( ' My message Trace ' );
Debug( ' My message debug ' );
Info( ' My message info ' );
Success( ' My message success ' );
Warn( ' My message warn ' );
Error( ' My message error ' );
Fatal( ' My message fatal ' );
Custom( ' My Type ' , ' My message custom ' );
Readln;
end .
Custom เป็นวิธีกำหนดชื่อสำหรับ ระดับ ของคุณเอง
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
Logger.Custom( ' Custom Level ' , ' My message with custom level! ' );
// Output: 2022-12-01 09:00:05.500 [Custom Level] My message with custom level!
Readln;
end .ฟังก์ชั่นที่ทำงานในบางรายการ
// Pula uma linha
Logger.SlineBreak;
// Desfaz o último log registrado
Logger.UndoLast; ฟังก์ชั่น SlineBreak โดยใช้เพื่อทำลายบรรทัด
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
Logger.SlineBreak;
Logger.Error( ' My message with level ERROR ' );
// Output: 2022-12-01 09:00:05.500 [INFO] My message with level INFO
// Output:
// Output: 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end . ฟังก์ชั่น UndoLast โดยใช้การยกเลิกการบันทึกครั้งสุดท้ายที่ดำเนินการ
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
// Output: 2022-12-01 09:00:05.500 [INFO] My message with level INFO
Sleep( 4000 );
Logger.UndoLast;
Logger.Error( ' My message with level ERROR ' );
// Output: 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end .เทมเพลตเป็นรูปแบบที่จะสร้างบันทึก
เทมเพลตมาตรฐาน:
$ { timestamp } [TID $ { thread_id } ] [PID $ { process_id } ] [SEQ $ { sequence } ] [$ { level } ] [$ { tag } ] $ { message }มีค่าคงที่บางอย่างที่สามารถใช้เพื่ออำนวยความสะดวกในการสร้างเทมเพลต
// Exibe o id que foi gerado o log, no formato GUID
TLoggerTemplate.LOG_ID = ' ${id} ' ;
// Exibe o nome do log. ex: Logger.SetName('SERVICE_REMOTE')
TLoggerTemplate.LOG_NAME = ' ${name} ' ;
// Exibe a sequencia que o log foi gerado.
TLoggerTemplate.LOG_SEQUENCE = ' ${sequence} ' ;
// Exibe a data e hora que foi gerado, usado o SetFormatTimestamp
TLoggerTemplate.LOG_TIMESTAMP = ' ${timestamp} ' ;
// Exibe a data e hora que foi gerado, no formato ISO8601.
TLoggerTemplate.LOG_TIMESTAMP_ISO8601 = ' ${timestamp_iso8601} ' ;
// Exibe a data e hora que foi gerado, no formato UNIX.
TLoggerTemplate.LOG_TIMESTAMP_UNIX = ' ${timestamp_unix} ' ;
// Exibe o Id da thread que foi gerado o log.
TLoggerTemplate.LOG_THREADID = ' ${thread_id} ' ;
// Exibe o id do processo do app.
TLoggerTemplate.LOG_PROCESSID = ' ${process_id} ' ;
// Exibe o level do log, sendo eles: TRACE / DEBUG / INFO / SUCCESS / WARN / ERROR / FATAL
TLoggerTemplate.LOG_LEVEL = ' ${level} ' ;
// Exibe o level do log no formato numérico, sendo eles: 1=TRACE / 2=DEBUG / 3=INFO / 4=SUCCESS / 5=WARN / 6=ERROR / 7=FATAL / 8=CUSTOM
TLoggerTemplate.LOG_LEVEL_VALUE = ' ${level_value} ' ;
// Exibe a tag do log, essa informação é preenchida a após a mensagem; Ex: Logger.Debug('Minha mensagem','Minha Tag');
TLoggerTemplate.LOG_TAG = ' ${tag} ' ;
// Exibe a mensagem do log, sem essa tag a mensagem não é exibida. Ex: Logger.Debug('Minha mensagem');
TLoggerTemplate.LOG_MESSAGE = ' ${message} ' ; // Exibe o nome do app.
TLoggerTemplate.LOG_APPNAME = ' ${app_name} ' ;
// Exibe o diretório do app.
TLoggerTemplate.LOG_APPPATH = ' ${app_path} ' ;
// Exibe a versão do app.
TLoggerTemplate.LOG_APPVERSION = ' ${app_version} ' ;
// Exibe o tamanho do app em MB.
TLoggerTemplate.LOG_APPSIZE = ' ${app_size} ' ;
// Exibe o nome do computador.
TLoggerTemplate.LOG_COMPUTERNAME = ' ${computer_name} ' ;
// Exibe o nome do usuário do Sistema Operacional.
TLoggerTemplate.LOG_USERNAME = ' ${username} ' ;
// Exibe as informações do Sistema Operacional.
TLoggerTemplate.LOG_OSVERSION = ' ${os_version} ' ;
// Exibe o IP Local.
TLoggerTemplate.LOG_IP_LOCAL = ' ${ip_local} ' ;
// Exibe o MAC Address.
TLoggerTemplate.LOG_MAC_ADDRESS = ' ${mac_address} ' ;
กำหนดรูปแบบที่จะบันทึกบันทึก
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o template com constante
Logger.SetTemplate(Format( ' %s [%s] %s ' , [TLoggerTemplate.LOG_TIMESTAMP, TLoggerTemplate.LOG_LEVEL, LoggerTemplate.LOG_MESSAGE]));
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
Logger.Error( ' My message with level ERROR ' );
// Output: 2022-12-01 09:00:05.500 [INFO] My message with level INFO
// Output: 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end . uses
DataLogger,
DataLogger.Provider.Console,
DataLogger.Provider.TextFile;
begin
// Formato do console '${timestamp} [${level}] ${message}'
Logger.AddProvider(
TProviderConsole.Create
.SetTemplate( ' ${timestamp} [${level}] ${message} ' )
);
// Formato do text file '${timestamp} - ${message}'
Logger.AddProvider(
TProviderTextFile.Create
.SetTemplate( ' ${timestamp} - ${message} ' )
);
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
Logger.Error( ' My message with level ERROR ' );
// Output Console:
// 2022-12-01 09:00:05.500 [INFO] My message with level INFO
// 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
// Output TextFile:
// 2022-12-01 09:00:05.500 - My message with level INFO
// 2022-12-01 09:00:05.600 - My message with level ERROR
Readln;
end .มันเปลี่ยนรูปร่างการประทับเวลา
yyyy-mm-dd hh:mm:ss.zzz uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o formato do Timestamp
Logger.SetFormatTimestamp( ' dd/mm/yyyy hh:mm:ss ' )
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o template com constante
Logger.SetTemplate(Format( ' %s [%s] %s ' , [TLoggerTemplate.LOG_TIMESTAMP, TLoggerTemplate.LOG_LEVEL, LoggerTemplate.LOG_MESSAGE]));
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
Logger.Error( ' My message with level ERROR ' );
// Output: 01/12/2022 09:00:05 [INFO] My message with level INFO
// Output: 01/12/2022 09:00:05 [ERROR] My message with level ERROR
Readln;
end .Datalogger มีระดับเหล่านี้เพื่อสร้าง บันทึก :
Logger.Trace( ' ' );
Logger.Debug( ' ' );
Logger.Info( ' ' );
Logger.Success( ' ' );
Logger.Warn( ' ' );
Logger.Error( ' ' );
Logger.Fatal( ' ' );
Logger.Custom( ' ' );
// Modo simplificado
Logger.T( ' ' ); // TRACE
Logger.D( ' ' ); // DEBUG
Logger.I( ' ' ); // INFO
Logger.S( ' ' ); // SUCCESS
Logger.W( ' ' ); // WARN
Logger.E( ' ' ); // ERROR
Logger.F( ' ' ); // FATAL
Logger.C( ' ' ); // CUSTOM เป็นไปได้ที่จะเปลี่ยนคำอธิบายของระดับเป็นคำอธิบายอื่น
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o Level
Logger.SetLevelName(TLoggerLevel.Info, ' INFORMATION ' );
Logger.SetLevelName(TLoggerLevel.Warn, ' WARNING ' );
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
Logger.Warn( ' My message with level WARN ' );
// Output: 2022-12-01 09:00:05.600 [INFORMATION] My message with level INFO
// Output: 2022-12-01 09:00:05.600 [ WARNING ] My message with level WARN
Readln;
end . เป็นไปได้ที่จะแสดงเฉพาะ บันทึก จาก ระดับ ที่กำหนดขึ้นอยู่กับ TLoggerLevel
ค่าเริ่มต้น SetLevel = TLoggerLevel.All
Logger.SetLevel(TLoggerLevel.Warn); - บันทึก เฉพาะจะถูกบันทึกด้วย Warn / Error / Fatal / Custom TLoggerLevel. All = ' Utilizado para operações internas '
TLoggerLevel.Trace = ' Level 1 '
TLoggerLevel.Debug = ' Level 2 '
TLoggerLevel.Info = ' Level 3 '
TLoggerLevel.Success = ' Level 4 '
TLoggerLevel.Warn = ' Level 5 '
TLoggerLevel.Error = ' Level 6 '
TLoggerLevel.Fatal = ' Level 7 '
TLoggerLevel.Custom = ' Level 8 ' uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o Level
Logger.SetLevel(TLoggerLevel.Warn);
// Gerando os logs
Logger.Info( ' My message with level INFO ' );
Logger.Error( ' My message with level ERROR ' );
// Output: 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end . เป็นไปได้ที่จะปิด การใช้งานบันทึก บางอย่างจากบันทึกตาม TLoggerLevel
ค่ามาตรฐาน setDisablevel = []
Logger.SetDisableLevel([TLoggerLevel.Info, TLoggerLevel.Warn]); - เฉพาะ บันทึก จะลงทะเบียนกับ Tracer / Debug / Success / Error / Fatal / Custom uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o DisableLevel
Logger.SetDisableLevel([TLoggerLevel.Info, TLoggerLevel.Warn]);
// Gerando os logs
Logger.Debug( ' My message with level DEBUG ' );
Logger.Info( ' My message with level INFO ' );
Logger.Warn( ' My message with level WARN ' );
Logger.Error( ' My message with level ERROR ' );
// Output:
// 2022-12-01 09:00:05.500 [DEBUG] My message with level DEBUG
// 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end . เป็นไปได้ที่จะแสดงบันทึกเพียงไม่กี่ บันทึก ของบันทึกตาม TLoggerLevel
ค่าเริ่มต้น setOnlyLevel = [TLoggerLevel.All]
Logger.SetOnlyLevel([TLoggerLevel.Error]); - บันทึก เฉพาะจะถูกบันทึกด้วยประเภท Error uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o OnlyLevel
Logger.SetOnlyLevel([TLoggerLevel.Error]);
// Gerando os logs
Logger.Debug( ' My message with level DEBUG ' );
Logger.Info( ' My message with level INFO ' );
Logger.Warn( ' My message with level WARN ' );
Logger.Error( ' My message with level ERROR ' );
// Output:
// 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end .เป็นไปได้ที่จะจับข้อยกเว้นที่สร้างขึ้นโดย การจัดเตรียม
setLogException ค่าเริ่มต้น = nil
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o LogException
Logger.SetLogException(
procedure( const Sender: TObject; const LogItem: TLoggerItem; const E: Exception; var RetriesCount: Integer)
begin
// Sender - Provider que gerou a exceção, para visualizar - Sender.ClassName
// LogItem - Contém todas as informações do log
// E - Contém as informações da exceção
// RetriesCount - Contém o número da tentativa realizada
// Caso seja alterado o valor para -1, o processo é interrompido
end
);
// Gerando o log
Logger.Error( ' My message with level ERROR ' );
// Output:
// 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end .เป็นไปได้ที่จะกำหนดจำนวนความพยายามที่ ผู้ให้บริการ ควรพยายามบันทึกบันทึก
ค่ามาตรฐาน setMaxReries = 5
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Definindo o máximo de tentativas
Logger.SetMaxRetries( 5 );
// Gerando o log
Logger.Error( ' My message with level ERROR ' );
// Output:
// 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end .เป็นไปได้ที่จะละเว้นเทมเพลตและบันทึกข้อมูลทั้งหมดที่สร้างโดย Datalogger;
SetIgnoreTemplate( { 1 } , { 2 } , { 3 } , { 4 } );
Parâmetros:
{ 1 } = (Boolean) = Defini se deve ignorar o Template.
{ 2 } = (string) = Defini qual texto vai fazer a separação das informações, semelhante ao CSV.
{ 3 } = (Boolean) = Defini se deve mostrar as palavras chaves de cada valor.
{ 4 } = (string) = Defini qual texto deve separar a palavra chave do valor.
Logger.SetIgnoreTemplate(True, ' | ' , True, ' -> ' );
{ palavra_chave } = " timestamp "
{ palavra_chave_separador } = " -> "
{ valor } = " 2022-09-15T14:39:38.896-03:00 "
{ separator } = " | "
// output timestamp -> 2022-09-15T14:39:38.896-03:00 | timestamp_format -> 2022-09-15 14:39:38.896 uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Ignorando o log format
Logger.SetIgnoreTemplate(True, ' | ' , True, ' -> ' );
// Gerando o log
Logger.Error( ' My message with level ERROR ' );
// Output:
// timestamp -> 2022-09-15T14:39:38.896-03:00 | timestamp_format -> 2022-09-15 14:39:38.896 | name -> | sequence -> 1 | thread_id -> 3804 | level -> Trace | level_value -> 1 | tag -> | message -> My Trace | app_name -> ProviderTextFile | app_version -> 1.0.0.0 | app_path -> C:GithubDataLoggerSamplesTextFileWin32Debug | app_size -> 13,24 MB | computer_name -> DESKTOP-7RP1H3K | username -> danil | os_version -> Windows 10 (Version 21H2, OS Build 19044.1889, 64-bit Edition) | process_id -> 13608 | ip_local -> 192.168.56.1
Readln;
end .เป็นไปได้ที่จะกำหนดชื่อสำหรับ datalogger ที่สามารถแสดงในบันทึกบันทึก ชื่อนี้สามารถใช้เพื่อแยกความแตกต่าง datalogger เมื่อมีมากกว่าหนึ่งอินสแตนซ์
setName ค่าเริ่มต้นค่า = EmptyStr
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${name} ${timestamp} [${level}] ${message} ' );
// Definindo o name
Logger.SetName( ' MyLogger ' );
// Gerando o log
Logger.Error( ' My message with level ERROR ' );
// Output:
// MyLogger 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end .เป็นไปได้ที่จะบันทึกบันทึกแบบเรียลไทม์เพื่อให้คำสั่งถัดไปของรหัสของคุณจะดำเนินการต่อหลังจากบันทึกบันทึก!
บันทึกปัจจุบันจะถูกบันทึกในหน่วยความจำแล้วจะถูกบันทึกโดยไม่ล็อคแอปพลิเคชัน
ค่ามาตรฐาน setliveMode = false
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create);
// Definindo o template
Logger.SetTemplate( ' ${name} ${timestamp} [${level}] ${message} ' );
// Definindo o LiveMode
Logger.SetLiveMode(True);
// Gerando o log
Logger.Error( ' My message with level ERROR ' );
// Output:
// MyLogger 2022-12-01 09:00:05.600 [ERROR] My message with level ERROR
Readln;
end .เป็นไปได้ที่จะทำงานกับ ธุรกรรม เช่นเดียวกับที่ใช้ในส่วนประกอบอื่น ๆ ที่มีการเชื่อมต่อฐานข้อมูล
การใช้ขั้นตอนนี้สามารถนำไปใช้กับสถานการณ์ต่อไปนี้
มาเล่าเรื่องเล็กน้อย:
เรามี ขั้นตอน ที่ดำเนินการในแต่ละขั้นตอนข้อมูลบันทึกหลายอย่างถูกสร้างขึ้นดังนั้นเราจึงบันทึกข้อมูลนี้อยู่เสมอซึ่งจะทำให้ไฟล์ข้อความของเรามีขนาดใหญ่เกินไป
ทีนี้ลองนึกภาพความสามารถในการบันทึกข้อมูลเฉพาะในกรณีที่มีข้อผิดพลาดใด ๆ ในระหว่างการดำเนินการหรือเมื่อจำเป็นเพื่อบันทึกข้อมูลจริงๆ
การเปิดใช้งานการใช้ ธุรกรรม จะต้องทำโดย ผู้ให้บริการ ด้วยฟังก์ชั่น UseTransaction(True)
อดีต:
Logger.AddProvider(
TProviderConsole.Create
.UseTransaction(True) // Enable transaction only on this provider
);มันเริ่มทำธุรกรรมใหม่
ยืนยันบันทึกของบันทึกทั้งหมดในการทำธุรกรรม
ยกเลิกบันทึกทั้งหมดที่สร้างขึ้นในธุรกรรม
ตัวอย่างด้วยธุรกรรม
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create.UseTransaction(True));
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Iniciando a transaction
Logger.StartTransaction;
Writeln( ' Iniciou a transaction ' );
// Gerando o log
Logger.Info( ' My message with level INFO 1 ' );
Logger.Info( ' My message with level INFO 2 ' );
Logger.Info( ' My message with level INFO 3 ' );
Logger.Info( ' My message with level INFO 4 ' );
Logger.Info( ' My message with level INFO 5 ' );
Logger.Info( ' My message with level INFO 6 ' );
Logger.Info( ' My message with level INFO 7 ' );
Logger.Info( ' My message with level INFO 8 ' );
Logger.Info( ' My message with level INFO 9 ' );
Writeln( ' Terminou os Logs ' );
// Fazendo o commit
Logger.CommitTransaction;
Writeln( ' Fez os commits ' );
Readln;
end .ตัวอย่างด้วยธุรกรรมที่อยู่ในสภาพ
ธุรกรรม Nestile ให้ความเป็นไปได้ของการจัดการที่มากขึ้นเมื่อบันทึกข้อมูล
uses
DataLogger,
DataLogger.Provider.Console;
begin
Logger.AddProvider(TProviderConsole.Create.UseTransaction(True));
// Definindo o template
Logger.SetTemplate( ' ${timestamp} [${level}] ${message} ' );
// Iniciando a transaction
Logger.StartTransaction;
try
// Gerando o log
Logger.Info( ' My message with level INFO 1 ' );
Logger.Info( ' My message with level INFO 2 ' );
Logger.Info( ' My message with level INFO 3 ' );
Logger.Info( ' My message with level INFO 4 ' );
// Iniciando 2 transaction
Logger.StartTransaction;
try
Logger.Info( ' My message with level INFO 5 ' );
Logger.Info( ' My message with level INFO 6 ' );
finally
// fazendo Rollback da segunda transaction
Logger.RollbackTransaction;
end ;
Logger.Info( ' My message with level INFO 7 ' );
Logger.Info( ' My message with level INFO 8 ' );
Logger.Info( ' My message with level INFO 9 ' );
finally
// Fazendo o commit
Logger.CommitTransaction;
end ;
Readln;
end .