
Delphi (Delphi XE6 -Delphi 12 Athens)/Freepascal (트렁크)/. Net (Windows/Linux/Android/MacOSX/iOS) 라이브러리 다중 제공 업체에 로깅을위한 라이브러리 :
Github 에서이 프로젝트를 "별"하십시오! 비용은 비용이 들지만 코드를 참조하는 데 도움이됩니다. 
이 프로젝트가 유용하다고 생각되면 기부를 고려하십시오.
2 월 10,2024 년 Rad Studio 12 지원
11 월 22,2021 RAD Studio 11 지원
5 월 30,2020 : RAD Studio 10.4 지원
5 월 2,2020 년 : Twilio 제공 업체
4 월 25,2020 : 사용자 정의 출력 형식 및 사용자 정의 태그 지원
4 월 24,2020 : 센트리 제공 업체
2019 년 9 월 14 일 : 새로운 선택 사항 포함 로그 정보 : ThreadId.
2019 년 9 월 11 일 : 현재 Rad Studio GetIt 패키지 관리자에 포함되어 있습니다.
2019 년 3 월 28 일 : 처리되지 않은 예외 후크
2019 년 3 월 28 일 : 예외 정보 향상
2019 년 3 월 16 일 : 그레이 로그 제공 업체
2019 년 2 월 28 일 : InfluxDB 제공 업체
2019 년 2 월 26 일 : Elasticsearch 제공자
2019 년 2 월 25 일 : Logstash 제공 업체
2019 년 2 월 19 일 : Delphi Linux 호환.
2019 년 2 월 10 일 : Firemonkey OSX 및 IOS 호환성.
2018 년 12 월 8 일 : 단일 JSON에서로드/저장 제공 업체 구성
2018 년 12 월 7 일 : 델파이 10.3 리오 지원
2018 년 9 월 11 일 : Firemonkey Android 호환성이 향상되었습니다
2018 년 7 월 4 일 : 네이티브 DLL 및 .NET Warpper (Turrican 덕분)
2018 년 6 월 29 일 : /JSON에서 구성
2018 년 6 월 15 일 : Syslog 제공 업체.
2018 년 5 월 28 일 : 슬랙 제공자.
2018 년 5 월 27 일 : ADODB 제공 업체.
2018 년 5 월 27 일 : Telegram 제공자.
2018 년 5 월 25 일 : 사용자 정의 출력 MSG.
2018 년 5 월 22 일 : ELK 지원.
2018 년 5 월 20 일 : Delphinus 지원.
2018 년 5 월 20 일 : Redis 및 REST 제공 업체를위한 옵션 필드가있는 JSON 출력.
2018 년 5 월 17 일 : Freepascal Linux 호환성.
2018 년 5 월 2 일 : Freepascal Windows 호환성.
빠른 로거는 비동기입니다. 모든 로그는 대기열로 전송되며 응용 프로그램 흐름을 손상시키지 않습니다. 많은 공급자를 정의하여 모든 로그 항목을 전송하고 모든 수준을 수용 할 수있는 레벨을 결정할 수 있습니다.
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 및 제공 업체는 Close Your App에서 자동 생성 및 출시 된 글로벌 클래스를 보유하고 있습니다. 사용 조항에 원하는 제공자를 추가하면됩니다.
참고 : 로깅을 보내려면 거의 하나의 공급자를 추가해야합니다.
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 디버그 제공 업체 :
Quick.logger.provider.idebug : IDE 디버그 메시지에 로깅을 보냅니다.
속성:
Windows EventLog 제공 업체 :
Quick.logger.provider.eventLog : Windows EventLog에 로깅을 보냅니다.
속성:
HTTP REST 제공자 :
Quick.logger.provider.rest : JSON 게시물로 RestServer에 로깅을 보냅니다.
속성:
Redis 제공자 :
Quick.logger.provider.redis : 로깅을 Redis 서버로 보냅니다.
속성:
메모리 제공자 :
Quick.logger.provider.Memory : 메모리에 로그인을 저장합니다.
속성:
전보 공급자 :
Quick.logger.provider.telegram : 공개/개인 Telegram 채널에 메시지로 로그를 보내십시오. (이 채널에서 봇 토큰이 필요합니다)
속성:
슬랙 제공자 :
quick.logger.provider.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 Server에 로깅을 보냅니다.
속성:
인기있는 공급자 :
Quick.logger.provider.influxDB : 로깅을 InfluxDB 데이터베이스에 보냅니다.
속성:
그레이 로그 제공 업체 :
Quick.logger.provider.grayLog : GrayLog 서비스에 로깅을 보냅니다.
속성:
센트리 제공자 :
Quick.logger.provider.Sentry : 센트리 서비스에 로깅을 보냅니다.
속성:
Twilio 제공 업체 :
Quick.logger.provider.twilio : Twilio Service에 로깅을 보냅니다.
속성:
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 : 날짜 및 시간 로그 항목이 발생합니다
날짜 : 날짜 로그 항목이 발생합니다
시간 : 시간 로그 항목이 발생합니다
레벨 : 레벨 또는 이벤트 유형
LevelInt : 레벨 숫자
메시지 : 로거로 전송 된 메시지
환경 : 사용자 정의 가능한 변수 (일반적으로 생산, 테스트 등)
플랫폼 : 사용자 정의 가능한 변수 (일반적으로 데스크탑, 모바일 등)
AppName : 사용자 정의 가능한 변수 (기본적으로 확장자없이 파일 이름으로 세트)
Appversion : 응용 프로그램 파일 버전
AppPath : 응용 프로그램 실행 경로
호스트 이름 : 컴퓨터 이름
사용자 이름 : 기록 된 사용자 이름
Osversion : OS 버전
CPUCORES : CPU 코어 수
스레 이드 : 스레드 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 개의 예외 후크가 있습니다. 사용 절에 하나 이상의 단위를 추가해야합니다.
델파이를 배우거나 기술을 향상시키고 싶습니까? LEARNDELPHI.org