lazarus/docs/xml/lazutils/lazlogger.xml

741 lines
24 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
<package name="LazUtils">
<!--
========================================================================
LazLogger
========================================================================
-->
<module name="LazLogger">
<short>Provides a log framework</short>
<descr>
<p>
LazLogger provides logging facilities to write message to a file. Messages can be logged plain, or enclosed in begin/end like blocks, adding indent to all messages between to points (blocks can be nested). It also has the ability to filter groups of messages.
</p>
<p>
It can reads the command line and environment to find the desired filename. By default it looks for --debug-log= on the command line or "appname"_debuglog in environment.
</p>
<p>
If no log name is found StdOut is used.
</p>
<p>
The easiest method is to use the unit and put "DebugLn"/ "DbgOut" / "DebugLnEnter"/ "DebugLnExit" in your code. This works without any further setup.
</p>
</descr>
<element name="Classes"/>
<element name="SysUtils"/>
<element name="Types"/>
<element name="Math"/>
<element name="LazLoggerBase"/>
<element name="LazClasses"/>
<element name="LazFileUtils"/>
<element name="LazStringUtils"/>
<element name="LazUTF8"/>
<element name="PLazLoggerLogGroup">
<short/>
<descr/>
<seealso/>
</element>
<element name="DebuglnStack">
<short/>
<descr/>
<seealso/>
</element>
<element name="DebuglnStack.s">
<short/>
</element>
<element name="DbgOut">
<short>Write message to log</short>
<descr><p>Writes the text to the log. Does not append a new line.<br/>
The Argument can be:<br/>
One or more string(s)<br/>
An open array of const: All values are converted to string and joined<br/>
A single string and open array of const: Will be passed to Format<br/>
Any of the above with a PLazLoggerLogGroup as filter<br/>
This is a forwarder to the log TLazLogger object. See there for details.<br/>
</p>
</descr>
<seealso><link id="#LazUtils.LazLogger.GetDebugLogger"/><link id="#LazUtils.LazLogger.SetDebugLogger"/>
</seealso>
</element>
<element name="DebugLn">
<short>Write message to log</short>
<descr><p>Writes the text to the log. Does append a new line.</p><p>The Argument can be:</p><ul><li>One or more string</li><li>An open array of const: All values are converted to string and joined</li><li>A single string and open array of const: Will be passed to Format</li><li>Any of the above with a PLazLoggerLogGroup as filter</li><li>This is a forwarder to the log TLazLogger object. See there for details.</li>
</ul>
</descr>
<seealso><link id="#LazUtils.LazLogger.GetDebugLogger"/><link id="#LazUtils.LazLogger.SetDebugLogger"/>
</seealso>
</element>
<element name="DebugLnEnter">
<short>Write message to log</short>
<descr><p>Writes the text to the log. Does append a new line. Increases the current intend.
</p><p>The Argument can be:</p><p>One or more string</p><p>An open array of const: All values are converted to string and joined</p><p>A single string and open array of const: Will be passed to Format</p><p>Any of the above with a PLazLoggerLogGroup as filter</p><p>This is a forwarder to the log TLazLogger object. See there for details.</p>
</descr>
<seealso><link id="#LazUtils.LazLogger.GetDebugLogger"/><link id="#LazUtils.LazLogger.SetDebugLogger"/>
</seealso>
</element>
<element name="DebugLnExit">
<short>Write message to log</short>
<descr><p>Writes the text to the log. Does append a new line. Increases the current intend.
</p><p>The Argument can be:</p><p>One or more string</p><p>An open array of const: All values are converted to string and joined</p><p>A single string and open array of const: Will be passed to Format</p><p>Any of the above with a PLazLoggerLogGroup as filter</p><p>This is a forwarder to the log TLazLogger object. See there for details.</p>
</descr>
<seealso><link id="#LazUtils.LazLogger.GetDebugLogger"/><link id="#LazUtils.LazLogger.SetDebugLogger"/>
</seealso>
</element>
<element name="DbgS">
<short>Create a text representation for the specified value.</short>
<descr><p>Create a text representation for the specified value. Does not produce a log output.</p>
</descr>
<seealso/>
</element>
<element name="DbgS.Result">
<short/>
</element>
<element name="DbgS.c">
<short/>
</element>
<element name="DbgS.i">
<short/>
</element>
<element name="DbgS.p">
<short/>
</element>
<element name="DbgS.q">
<short/>
</element>
<element name="DbgS.r">
<short/>
</element>
<element name="DbgS.s">
<short/>
</element>
<element name="DbgS.e">
<short/>
</element>
<element name="DbgS.b">
<short/>
</element>
<element name="DbgS.m">
<short/>
</element>
<element name="DbgS.ASize">
<short/>
</element>
<element name="DbgS.i1">
<short/>
</element>
<element name="DbgS.i2">
<short/>
</element>
<element name="DbgS.i3">
<short/>
</element>
<element name="DbgS.i4">
<short/>
</element>
<element name="DbgS.Shift">
<short/>
</element>
<element name="DbgSJoin">
<short/>
<descr/>
<seealso/>
</element>
<element name="DbgSJoin.s1">
<short/>
</element>
<element name="DbgSJoin.s2">
<short/>
</element>
<element name="DbgSName">
<short/>
<descr/>
<seealso/>
</element>
<element name="DbgSName.p">
<short/>
</element>
<element name="dbgObjMem">
<short/>
<descr/>
<seealso/>
</element>
<element name="dbgObjMem.Result">
<short/>
</element>
<element name="dbgObjMem.AnObject">
<short/>
</element>
<element name="dbghex">
<short/>
<descr/>
<seealso/>
</element>
<element name="dbghex.Result">
<short/>
</element>
<element name="dbghex.i">
<short/>
</element>
<element name="DbgSTime">
<short/>
<descr/>
<seealso/>
</element>
<element name="DbgSTime.Result">
<short/>
</element>
<element name="dbgMemRange">
<short/>
<descr/>
<seealso/>
</element>
<element name="dbgMemRange.Result">
<short/>
</element>
<element name="dbgMemRange.P">
<short/>
</element>
<element name="dbgMemRange.Count">
<short/>
</element>
<element name="dbgMemRange.Width">
<short/>
</element>
<element name="dbgMemStream">
<short/>
<descr/>
<seealso/>
</element>
<element name="dbgMemStream.Result">
<short/>
</element>
<element name="dbgMemStream.MemStream">
<short/>
</element>
<element name="dbgMemStream.Count">
<short/>
</element>
<element name="DumpExceptionBackTrace">
<short/>
<descr/>
<seealso/>
</element>
<element name="DbgStr">
<short/>
<descr/>
<seealso/>
</element>
<element name="DbgSt.Result">
<short/>
</element>
<element name="DbgSt.StringWithSpecialChars">
<short/>
</element>
<element name="DbgSt.StartPos">
<short/>
</element>
<element name="DbgSt.Len">
<short/>
</element>
<element name="DbgSt.p">
<short/>
</element>
<element name="DbgWideStr">
<short/>
<descr/>
<seealso/>
</element>
<element name="DbgWideStr.Result">
<short/>
</element>
<element name="DbgWideStr.StringWithSpecialChars">
<short/>
</element>
<element name="TLazLoggerFileHandle">
<short>A log file writer object</short>
<descr>
<p>
Provides functionality to write messages to a log file. Allows filtering and changing indent level.
</p>
<p>
Can parse options from command line for log filename and filter settings.
</p>
<p>
An application can subclass the logger to add it's own functionality.
</p>
</descr>
</element>
<element name="TLazLoggerFileHandle.FActiveLogText"/>
<element name="TLazLoggerFileHandle.FCloseLogFileBetweenWrites"/>
<element name="TLazLoggerFileHandle.FLastWriteFailed"/>
<element name="TLazLoggerFileHandle.FLogName"/>
<element name="TLazLoggerFileHandle.FText"/>
<element name="TLazLoggerFileHandle.FLogTextInUse"/>
<element name="TLazLoggerFileHandle.FUseStdOut"/>
<element name="TLazLoggerFileHandle.FWriteFailedCount"/>
<element name="TLazLoggerFileHandle.DoOpenFile"/>
<element name="TLazLoggerFileHandle.DoCloseFile"/>
<element name="TLazLoggerFileHandle.GetWriteTarget"/>
<element name="TLazLoggerFileHandle.GetWriteTarget.Result"/>
<element name="TLazLoggerFileHandle.SetCloseLogFileBetweenWrites"/>
<element name="TLazLoggerFileHandle.SetCloseLogFileBetweenWrites.AValue"/>
<element name="TLazLoggerFileHandle.SetLogName"/>
<element name="TLazLoggerFileHandle.SetLogName.AValue"/>
<element name="TLazLoggerFileHandle.Create">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.Destroy">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.OpenFIle">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.CloseFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.ResetWriteFailedCounter">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.WriteToFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.WriteToFile.s">
<short/>
</element>
<element name="TLazLoggerFileHandle.WriteToFile.ALogger">
<short/>
</element>
<element name="TLazLoggerFileHandle.WriteLnToFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.WriteLnToFile.s">
<short/>
</element>
<element name="TLazLoggerFileHandle.WriteLnToFile.ALogger">
<short/>
</element>
<element name="TLazLoggerFileHandle.LogName">
<short>The name of the log file</short>
<descr>
This can be set by the application. Alternatively it can be determined according to ParamForLogFileName and EnvironmentForLogFileName
</descr>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.UseStdOut">
<short>Enable writing to STDOUT, if LogName is not set</short>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.CloseLogFileBetweenWrites">
<short>Enable opening and closing the log for each write</short>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.WriteTarget">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.ActiveLogText">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.WriteFailedCount">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandle.LastWriteFailed">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleThreadSave">
<short>Performs file operations using a critical section</short>
<descr>
<p>
TLazLoggerFileHandleThreadSave is a TLazLoggerFileHandle descendant which implements a threaded file logger. TLazLoggerFileHandleThreadSave uses a TRTLCriticalSection class instance to lock the log file during file output operations. Requires that DoOpenFile is called by the main application thread. Otherwise the filehandle may get closed.
</p>
</descr>
<seealso/>
</element>
<element name="TLazLoggerFileHandleThreadSave.FWriteToFileLock"/>
<element name="TLazLoggerFileHandleThreadSave.Create">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleThreadSave.Destroy">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleThreadSave.WriteToFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleThreadSave.WriteToFile.s">
<short/>
</element>
<element name="TLazLoggerFileHandleThreadSave.WriteToFile.ALogger">
<short/>
</element>
<element name="TLazLoggerFileHandleThreadSave.WriteLnToFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleThreadSave.WriteLnToFile.s">
<short/>
</element>
<element name="TLazLoggerFileHandleThreadSave.WriteLnToFile.ALogger">
<short/>
</element>
<element name="TLazLoggerFileHandleMainThread">
<short>File operations are queued for the main thread</short>
<descr>
<p>
TLazLoggerFileHandleMainThread is a TLazLoggerFileHandle descendant which implements a file-based logger which queues file operations for the main thread in an application.
</p>
</descr>
<seealso/>
</element>
<element name="TLazLoggerFileHandleMainThread.PWriteListEntry"/>
<element name="TLazLoggerFileHandleMainThread.TWriteListEntry"/>
<element name="TLazLoggerFileHandleMainThread.TWriteListEntry.Next"/>
<element name="TLazLoggerFileHandleMainThread.TWriteListEntry.Data"/>
<element name="TLazLoggerFileHandleMainThread.TWriteListEntry.Ln"/>
<element name="TLazLoggerFileHandleMainThread.TWriteListEntry.Logger"/>
<element name="TLazLoggerFileHandleMainThread.FWriteToFileLock"/>
<element name="TLazLoggerFileHandleMainThread.FFirst"/>
<element name="TLazLoggerFileHandleMainThread.FLast"/>
<element name="TLazLoggerFileHandleMainThread.MainThreadWrite"/>
<element name="TLazLoggerFileHandleMainThread.Create">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleMainThread.Destroy">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleMainThread.WriteToFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleMainThread.WriteToFile.s">
<short/>
</element>
<element name="TLazLoggerFileHandleMainThread.WriteToFile.ALogger">
<short/>
</element>
<element name="TLazLoggerFileHandleMainThread.WriteLnToFile">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFileHandleMainThread.WriteLnToFile.s">
<short/>
</element>
<element name="TLazLoggerFileHandleMainThread.WriteLnToFile.ALogger">
<short/>
</element>
<element name="TLazLoggerFile">
<short/>
<descr>
TLazLoggerFile is a TLazLoggerWithGroupParam descendant.
</descr>
<seealso/>
</element>
<element name="TLazLoggerFile.FFileHandle"/>
<element name="TLazLoggerFile.FOnDbgOut"/>
<element name="TLazLoggerFile.FOnDbgLn"/>
<element name="TLazLoggerFile.FBlockHandler"/>
<element name="TLazLoggerFile.FEnvironmentForLogFileName"/>
<element name="TLazLoggerFile.FParamForLogFileName"/>
<element name="TLazLoggerFile.FGetLogFileNameDone"/>
<element name="TLazLoggerFile.FIndentCriticalSection"/>
<element name="TLazLoggerFile.FDebugNestLvl"/>
<element name="TLazLoggerFile.FDebugIndent"/>
<element name="TLazLoggerFile.FDebugNestAtBOL"/>
<element name="TLazLoggerFile.GetFileHandle"/>
<element name="TLazLoggerFile.GetFileHandle.Result"/>
<element name="TLazLoggerFile.SetEnvironmentForLogFileName"/>
<element name="TLazLoggerFile.SetEnvironmentForLogFileName.AValue"/>
<element name="TLazLoggerFile.SetFileHandle"/>
<element name="TLazLoggerFile.SetFileHandle.AValue"/>
<element name="TLazLoggerFile.SetParamForLogFileName"/>
<element name="TLazLoggerFile.SetParamForLogFileName.AValue"/>
<element name="TLazLoggerFile.GetLogFileName"/>
<element name="TLazLoggerFile.GetLogFileName.Result"/>
<element name="TLazLoggerFile.GetCloseLogFileBetweenWrites"/>
<element name="TLazLoggerFile.GetCloseLogFileBetweenWrites.Result"/>
<element name="TLazLoggerFile.GetLogName"/>
<element name="TLazLoggerFile.GetLogName.Result"/>
<element name="TLazLoggerFile.GetUseStdOut"/>
<element name="TLazLoggerFile.GetUseStdOut.Result"/>
<element name="TLazLoggerFile.SetCloseLogFileBetweenWrites"/>
<element name="TLazLoggerFile.SetCloseLogFileBetweenWrites.AValue"/>
<element name="TLazLoggerFile.SetLogName"/>
<element name="TLazLoggerFile.SetLogName.AValue"/>
<element name="TLazLoggerFile.SetUseStdOut"/>
<element name="TLazLoggerFile.SetUseStdOut.AValue"/>
<element name="TLazLoggerFile.DoInit">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.DoFinsh">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.IncreaseIndent">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.IncreaseIndent.LogEnabled">
<short/>
</element>
<element name="TLazLoggerFile.DecreaseIndent">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.DecreaseIndent.LogEnabled">
<short/>
</element>
<element name="TLazLoggerFile.IndentChanged">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.CreateIndent">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.GetBlockHandler">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.GetBlockHandler.Result">
<short/>
</element>
<element name="TLazLoggerFile.GetBlockHandler.AIndex">
<short/>
</element>
<element name="TLazLoggerFile.ClearAllBlockHandler">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.DoDbgOut">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.DoDbgOut.s">
<short/>
</element>
<element name="TLazLoggerFile.DoDebugLn">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.DoDebugLn.s">
<short/>
</element>
<element name="TLazLoggerFile.DoDebuglnStack">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.DoDebuglnStack.s">
<short/>
</element>
<element name="TLazLoggerFile.FileHandle">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.Create">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.Destroy">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.Assign">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.Assign.Src">
<short/>
</element>
<element name="TLazLoggerFile.CurrentIndentLevel">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.CurrentIndentLevel.Result">
<short/>
</element>
<element name="TLazLoggerFile.ParamForLogFileName">
<short>Name of the command line option, that has the logfile's name</short>
<descr>
<p>
A param on the commandline, that may contain the name (if not already set) example/default: --debug-log=.
</p>
<p>
If LogName is empty and this is set, then the commandline will be checked for a parameter of the name specified. LogName will be set, if found. The default value is '--debug-log='. Note that the dashes and equal sign must be present.
</p>
</descr>
<seealso/>
</element>
<element name="TLazLoggerFile.EnvironmentForLogFileName">
<short>Name of the environment, that has the logfile name</short>
<descr>
<p>
If LogName is empty and con not be found from ParamForLogFileName, then the environment variable specified will be checked. LogName will be set, if found.
</p>
<p>* will be replaced by param(0)</p>
<p>The default is: *_debuglog.</p>
</descr>
<seealso/>
</element>
<element name="TLazLoggerFile.OnDebugLn">
<short>Event when writing a full line (Debugln, DebuglnEnter or DebuglnExit)</short>
<descr>
The event contains the text to be logged. It also has a handled var param, that can be set to True to prevent default action (writing to log).
</descr>
<seealso/>
</element>
<element name="TLazLoggerFile.OnDbgOut">
<short>Event when writing without line end (DbgOut)</short>
<descr>
<p>
The event contains the text to be logged. It also has a handled var param, that can be set to True to prevent default action (writing to log).
</p>
</descr>
<seealso/>
</element>
<element name="TLazLoggerFile.AddBlockHandler">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.AddBlockHandler.AHandler">
<short/>
</element>
<element name="TLazLoggerFile.RemoveBlockHandler">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.RemoveBlockHandler.AHandler">
<short/>
</element>
<element name="TLazLoggerFile.BlockHandlerCount">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.BlockHandlerCount.Result">
<short/>
</element>
<element name="TLazLoggerFile.LogName">
<short>The name of the log file</short>
<descr>
This can be set by the application. Alternatively it can be determined according to ParamForLogFileName and EnvironmentForLogFileName
</descr>
<seealso/>
</element>
<element name="TLazLoggerFile.UseStdOut">
<short>Enable writing to STDOUT, if LogName is not set</short>
<descr/>
<seealso/>
</element>
<element name="TLazLoggerFile.CloseLogFileBetweenWrites">
<short>Enable opening and closing the log for each write</short>
<descr/>
<seealso/>
</element>
<element name="GetDebugLogger">
<short/>
<descr/>
<seealso/>
</element>
<element name="GetDebugLogger.Result">
<short/>
</element>
<element name="SetDebugLogger">
<short/>
<descr/>
<seealso/>
</element>
<element name="SetDebugLogger.ALogger">
<short/>
</element>
<element name="DebugLogger">
<short/>
<descr/>
<seealso/>
</element>
</module>
<!-- LazLogger -->
</package>
</fpdoc-descriptions>