Update logging related documentation.
* docs/DEBUG: Updates related to `FT_LOGGING`. * README.git: Updates related to logging.
This commit is contained in:
parent
6d9e6b21e5
commit
ab0ea068ee
|
@ -1,3 +1,11 @@
|
|||
2020-11-30 Priyesh Kumar <priyeshkkumar@gmail.com>
|
||||
|
||||
Update logging related documentation.
|
||||
|
||||
* docs/DEBUG: Updates related to `FT_LOGGING`.
|
||||
|
||||
* README.git: Updates related to logging.
|
||||
|
||||
2020-11-30 Priyesh Kumar <priyeshkkumar@gmail.com>
|
||||
|
||||
* src/*: Fix `-Wformat` warnings.
|
||||
|
|
|
@ -35,6 +35,14 @@ Similarly, a build with `cmake' can be done directly from the git
|
|||
repository.
|
||||
|
||||
|
||||
For using the `FT_LOGGING' macro while debugging (see `docs/DEBUG' for
|
||||
more information) use the following git commands to checkout `dlg'
|
||||
library as a git submodule.
|
||||
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2005-2020 by
|
||||
|
|
94
docs/DEBUG
94
docs/DEBUG
|
@ -44,6 +44,21 @@ located in the file `ftoption.h'. The macros are:
|
|||
When `FT2_DEBUG_MEMORY' isn't defined at runtime, the debugging
|
||||
memory manager is ignored, and performance is unaffected.
|
||||
|
||||
FT_LOGGING
|
||||
|
||||
#define this macro for enhanced logging support; it automatically
|
||||
sets `FT_DEBUG_LEVEL_TRACE' and `FT_DEBUG_LEVEL_ERROR'.
|
||||
|
||||
If defined, `FT_TRACE' and `FT_ERROR' can send tracing and
|
||||
debugging messages to a file. The location of the log file has to
|
||||
be set with the `FT_LOGGING_FILE' environment variable (more on
|
||||
this later).
|
||||
|
||||
The main enhancements are the possibility of logging the time and
|
||||
the name of the `FT_COMPONENT' macro together with the affected
|
||||
`FT_TRACE' or `FT_ERROR' calls. See below how to activate this in
|
||||
the `FT2_DEBUG' environment variable.
|
||||
|
||||
|
||||
II. Debugging macros
|
||||
--------------------
|
||||
|
@ -150,6 +165,43 @@ behaviour of FreeType at runtime.
|
|||
the memory and io components, which are set to the trace levels 5
|
||||
and 4, respectively.
|
||||
|
||||
If `FT_LOGGING' is defined, two more options are available.
|
||||
|
||||
* -v: Print also the name of FreeType's component from which the
|
||||
current log is produced.
|
||||
|
||||
* -t: Print also the time.
|
||||
|
||||
Here are some examples how the output might look like.
|
||||
|
||||
FT2_DEBUG="any:7 memory:5 -vt"
|
||||
|
||||
=> [20:32:02:44969 ttload] table directory loaded
|
||||
|
||||
FT2_DEBUG="any:7 memory:5 -t"
|
||||
|
||||
=> [20:32:02:44969] table directory loaded
|
||||
|
||||
FT2_DEBUG="any:7 memory:5 -v"
|
||||
|
||||
=> [ttload] table directory loaded
|
||||
|
||||
|
||||
FT_LOGGING_FILE
|
||||
|
||||
This variable is only used if FreeType is built with the
|
||||
`FT_LOGGING' macro defined. It contains the path to the file
|
||||
where the user wants to put his log file. If it is not set,
|
||||
FreeType uses stderr.
|
||||
|
||||
Examples:
|
||||
|
||||
On UNIX-like systems with bash:
|
||||
export FT_LOGGING_FILE="/tmp/freetype2.log"
|
||||
|
||||
On Windows:
|
||||
set FT_LOGGING_FILE=C:\Users\AppData\Local\Temp\freetype2.log
|
||||
|
||||
|
||||
FT2_DEBUG_MEMORY
|
||||
|
||||
|
@ -201,6 +253,48 @@ behaviour of FreeType at runtime.
|
|||
If it is undefined, or if its value is not strictly positive,
|
||||
freed blocks are released at runtime.
|
||||
|
||||
|
||||
IV. Additional Capabilities with `FT_LOGGING'
|
||||
---------------------------------------------
|
||||
|
||||
If `FT_LOGGING' is defined, four APIs are available to provide
|
||||
additional debugging support. Use
|
||||
|
||||
#include<freetype/ftlogging.h>
|
||||
|
||||
to access them.
|
||||
|
||||
FT_Trace_Set_Level( const char* level )
|
||||
|
||||
By default, FreeType uses the tracing levels set in the
|
||||
`FT2_DEBUG' environment variable. Use this function to override
|
||||
the value with `level'. Use value `NULL' to disable tracing.
|
||||
|
||||
FT_Trace_Set_Default_Level():
|
||||
|
||||
Reset the tracing levels to the default value, i.e., the value of
|
||||
the `FT2_DEBUG' environment variable or no tracing if not set.
|
||||
|
||||
FT_Set_Log_Handler( ft_custom_log_handler handler ):
|
||||
|
||||
Use `handler' as a custom handler for formatting tracing and error
|
||||
messages. The `ft_custom_log_handler' typedef has the following
|
||||
prototype.
|
||||
|
||||
void
|
||||
(*ft_custom_log_handler)( const char* ft_component,
|
||||
const char* fmt,
|
||||
va_list args );
|
||||
|
||||
`ft_component' is the current component like `ttload', `fmt' is the
|
||||
first argument of `FT_TRACE' or `FT_ERROR', and `args' holds the
|
||||
remaining arguments.
|
||||
|
||||
FT_Set_Default_Log_Handler():
|
||||
|
||||
Reset the log handler to the default version.
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2002-2020 by
|
||||
|
|
Loading…
Reference in New Issue