
| 브라질 포르투갈어 | 영어 |
DataLogger는 여러 제공자가 지원하는 간단한 로그 라이브러리로 설계되었습니다.
지원 : [email protected]
$ boss install github.com/dliocode/datalogger프로젝트> 옵션> 델파이 컴파일러> 검색 경로 에서 다음 폴더 추가 프로젝트에 추가
../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 | 콘솔 간단한 콘솔 |
| Coalogix | datalogger.provider.cralogix | Coalogix |
| CSV | datalogger.provider.csv | CSV |
| Datadatog | datalogger.provider.dategy | Datadatog |
| Datalust | datalogger.provider.datalust | 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 | 갭 |
| 그래프 즈슨 | datalogger.provider.graphjson | 그래프 즈슨 |
| 그레이 로그 | datalogger.provider.graylog | 그레이 로그 |
| HTML | datalogger.provider.html | HTML |
| Listbox | Datalogger.provider.listbox | Listbox |
| ListView | datalogger.provider.listview | ListView |
| 로그 렌트 | Datalogger.provider.logentries | 로그 렌트 |
| logflare | datalogger.provider.logflare | logflare |
| loggly | datalogger.provider.loggly | loggly |
| logstash | datalogger.provider.logstash | logstash |
| 로탈 | datalogger.provider.logtail | 로탈 |
| 로즈 | Datalogger.provider.logz | 로즈 |
| 메일 총 | Datalogger.provider.mailgun.api | 메일 총 |
| MailJet | datalogger.provider.mailjet.api | MailJet |
| Mattemost | Datalogger.provider.mattemet datalogger.provider.mattemost.webhooks | Mattemost Mattemosthook |
| 메모 | Datalogger.provider.meo | 메모 메모 및 텍스트 파일 메모 - 오류/VCL |
| 메모리 | datalogger.provider.memory | 메모리 |
| 메스마 | Datalogger.provider.mezmo | 메스마 |
| Mongodb | datalogger.provider.mongodb.cloud | Mongodb |
| ntfy | datalogger.provider.ntfy | ntfy |
| Newrelic | datalogger.provider.newrelic | Newrelic |
| 공고 | Datalogger.provider.Notification | 공고 |
| 새로운 | datalogger.provider.novu | 새로운 |
| OutputDebugstring | datalogger.provider.outputdebugstring | OutputDebugstring |
| 페이퍼 트레일 | datalogger.provider.papertrail | 페이퍼 트레일 |
| 소인 | Datalogger.provider.postmark.api | 소인 |
| RabbitMq | datalogger.provider.rabbitmq | RabbitMq |
| 레 디스 | datalogger.provider.redis | 레 디스 |
| 나머지 | datalogger.provider.rest.httpclient datalogger.provider.rest.indy datalogger.provider.rest.nethttpclient | 나머지 |
| 풍부합니다 | datalogger.provider.richedit | 풍부합니다 |
| Sematext | datalogger.provider.sematext.logs | 반 텍스트 로그 |
| SendChamp | Datalogger.provider.sendchamp.sms datalogger.provider.sendchamp.whatsapp | SendEmail |
| SendEmail | datalogger.provider.sendemail | SendEmail |
| SendGrid | datalogger.provider.sendgrid.webapi | sendgridwebapi |
| 느슨하게 | datalogger.provider.slack.webapi datalogger.provider.slack.webhook | 느슨하게 |
| Splunk | datalogger.provider.splunk | Splunk |
| 소켓 | datalogger.provider.socket | 소켓 |
| 요약 학적 | Datalogger.provider.smolemologic | 요약 학적 |
| syslog | datalogger.provider.syslog datalogger.provider.syslog.indy | syslog syslog indy |
| 전보 | Datalogger.provider.telegram | 전보 |
| 텍스트 파일 | Datalogger.provider.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 | 레 디스 |
| datalogger.provider.sendemail | SendEmail |
Access_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 .
관습은 자신의 레벨 의 이름을 정의하는 방법입니다.
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 default value = 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 Transactions는 정보를 저장할 때 더 큰 관리 가능성을 제공합니다.
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 .