Ein modernes und steckbares Protokollierungsframework für Delphi
LoggerPro ist kompatibel mit
ILogItemRenderers
hinzugefügt (siehe Beispiele) System.Net.HttpClient
verwenden)TLoggerProFileAppender
hinzugefügt (Vielen Dank, Charoit) TThreadedList<T>
aufgrund eines Fehlers in TMonitor
durch eine benutzerdefinierte Implementierung ( TThreadSafeQueue<T>
).TThreadSafeQueue<T>
ist kein Ersatz für TThreadedQueue<T>
kann aber in anderen Projekten verwendet werden, wenn Sie mit demselben Fehler kämpfen.TVCLMemoLogAppender.Create
erhält den neuen Parameter aClearOnStartup
, der optional das Memo beim Start löscht.TLoggerProConsoleAppender
(Dank an Fulgan)TLoggerProFileAppender
; Jetzt gibt es einen OnLogRow
Rückruf, der zum Anpassen des Protokollzeilenformats verwendet werden kann.Log
. Die *Fmt
-Versionen sind veraltet und werden in einer zukünftigen Version, AUSGABE Nr. 17, entferntRESTLogCollector
bereitgestellt program getting_started_console;
{ $APPTYPE CONSOLE }
uses
System.SysUtils,
LoggerPro.GlobalLogger; // this is the global logger, it is perfect to understand the basic operation of LoggerPro.
begin
try
// the global logger uses a TLoggerProFileAppender, so your logs will be written on a
// set of files with automatic rolling/rotating
Log.Debug( ' Debug message ' , ' main ' ); // TLoggerProFileAppender uses the "tag" to select a different log file
Log.Info( ' Info message ' , ' main ' );
Log.Warn( ' Warning message ' , ' main ' );
Log.Error( ' Error message ' , ' errors ' );
WriteLn( ' Check "getting_started_console.00.main.log" and "getting_started_console.00.errors.log" to see your logs ' );
ReadLn;
except
on E: Exception do
Writeln(E.ClassName, ' : ' , E.Message);
end ;
end .
Der flexibelste/richtigste Ansatz ist nicht viel komplizierter als der globale Logger-Ansatz. Erfahren Sie, wie Sie ganz einfach eine benutzerdefinierte Instanz von Logwriter erstellen können
program getting_started_console_appenders;
{ $APPTYPE CONSOLE }
uses
System.SysUtils,
LoggerPro, // LoggerPro core
LoggerPro.FileAppender, // File appender
LoggerPro.OutputDebugStringAppender; // OutputDebugString appender
var
Log: ILogWriter;
begin
Log := BuildLogWriter([TLoggerProFileAppender.Create,
TLoggerProOutputDebugStringAppender.Create]);
try
Log.Debug( ' Debug message ' , ' main ' );
Log.Info( ' Info message ' , ' main ' );
Log.Warn( ' Warning message ' , ' main ' );
Log.Error( ' Error message ' , ' errors ' );
WriteLn( ' Check ' );
WriteLn( ' "getting_started_console.00.main.log" ' );
WriteLn( ' "getting_started_console.00.errors.log" ' );
if DebugHook <> 0 then // inform the user where his/her logs are
begin
WriteLn( ' also, you logs have been sent to the current debugger, check the Delphi '' s EventLog window to see them. ' );
end
else
begin
WriteLn( ' ..seems that no debugger is present. The logs can be seen using DebugView. ' );
WriteLn( ' Download it from here https://technet.microsoft.com/en-us/sysinternals/debugview.aspx ' );
WriteLn( ' Learn how to use http://tedgustaf.com/blog/2011/5/use-debugview-to-view-debug-output-from-asp-net-web-application/ ' );
end ;
ReadLn;
except
on E: Exception do
WriteLn(E.ClassName, ' : ' , E.Message);
end ;
end .
Das Framework enthält die folgenden integrierten Protokoll-Appender
TLoggerProFileAppender
) (v1.0.0+)TLoggerProConsoleAppender
) (v1.0.0+)TLoggerProOutputDebugStringAppender
) (v1.0.0+)TVCLMemoLogAppender
) (v1.0.0+)TVCLMemoLogAppender
) – dank https://github.com/he3p94uu (v1.3.0+)Nächste Appender in der Entwicklungspipeline
Die Protokollschreiber und alle Appender sind asynchron.
Sehen Sie sich die Beispiele an, um zu sehen, wie Sie die einzelnen Appender verwenden oder sogar verschiedene Appender kombinieren.
Die Dokumentation ist im Ordner docs
“ als HTML verfügbar.
Sie können den Delphinus-Paketmanager installieren und dort LoggerPro als Paket installieren. (Delphinus-Unterstützung)