wlog: add some rudimentary documentation
This commit is contained in:
parent
25137988fe
commit
59cc6c4117
145
docs/wlog.md
Normal file
145
docs/wlog.md
Normal file
@ -0,0 +1,145 @@
|
||||
# Overview
|
||||
|
||||
WLog is a configurable and flexible logging system used throughout winpr and
|
||||
FreeRDP.
|
||||
|
||||
The primary concept is to have a hierarchy of loggers that can be be configured
|
||||
independently.
|
||||
|
||||
TODO add more details and configuration examples.
|
||||
|
||||
|
||||
|
||||
# Environment variables
|
||||
|
||||
* WLOG_APPENDER - the appender to use
|
||||
* WLOG_PREFIX - configure the prefix used for outputting the message (see
|
||||
Format for more details and examples)
|
||||
* WLOG_LEVEL - the level to output messages for
|
||||
* WLOG_FILTER - sets a filter for WLog messages. Only the filtered messages are
|
||||
printed
|
||||
* WLOG_FILEAPPENDER_OUTPUT_FILE_PATH - set the output file path for the file
|
||||
file appender
|
||||
* WLOG_FILEAPPENDER_OUTPUT_FILE_NAME - set the output file name for the output
|
||||
appender
|
||||
* WLOG_JOURNALD_ID - identifier used by the journal appender
|
||||
* WLOG_UDP_TARGET - target to use for the UDP appender in the format host:port
|
||||
|
||||
# Levels
|
||||
|
||||
The WLog are complementary the higher level always includes the lower ones.
|
||||
The level list below is top down. Top the highest level.
|
||||
|
||||
* WLOG_TRACE - print everything including package dumps
|
||||
* WLOG_DEBUG - debug messages
|
||||
* WLOG_INFO - general informations
|
||||
* WLOG_WARN - warnings
|
||||
* WLOG_ERROR - error
|
||||
* WLOG_FATAL - fatal problems
|
||||
* WLOG_OFF - completely disable the wlog output
|
||||
|
||||
|
||||
# Format
|
||||
|
||||
The format a logger prints in has the following possible options:
|
||||
|
||||
* "lv" - log level
|
||||
* "mn" - module name
|
||||
* "fl" - file name
|
||||
* "fn" - function
|
||||
* "ln" - line number
|
||||
* "pid" - process id
|
||||
* "tid" - thread id
|
||||
* "yr" - year
|
||||
* "mo" - month
|
||||
* "dw" - day of week
|
||||
* "hr" - hour
|
||||
* "mi" - minute
|
||||
* "se" - second
|
||||
* "ml" - milliseconds
|
||||
|
||||
A maximum of 16 options can be used per format string.
|
||||
|
||||
An example that generally sets the WLOG_PREFIX for xfreerdp would look like:
|
||||
```
|
||||
WLOG_PREFIX="pid=%pid:tid=%tid:fn=%fn -" xfreerdp /v:xxx
|
||||
```
|
||||
|
||||
# Appenders
|
||||
|
||||
WLog uses different appenders that define where the log output should be written
|
||||
to. If the application doesn't explicitly configure the appenders the above
|
||||
described variable WLOG_APPENDER can be used to choose one appender.
|
||||
|
||||
The following represents an overview about all appenders and their possible
|
||||
configuration values.
|
||||
|
||||
### Binary
|
||||
|
||||
Write the log data into a binary format file.
|
||||
|
||||
Options:
|
||||
* "outputfilename", value const char* - file to write the data to
|
||||
* "outputfilepath", value const char* - location of the output file
|
||||
|
||||
### Callback
|
||||
The callback appender can be used from an application to get all log messages
|
||||
back the application. For example if an application wants to handle the log
|
||||
output itself.
|
||||
|
||||
Options:
|
||||
|
||||
* "callbacks", value struct wLogCallbacks*, callbacks to use
|
||||
|
||||
### Console
|
||||
|
||||
The console appender writes to the console. Depending of the operating system
|
||||
the application runs on the output might be handled differently. For example
|
||||
on android log print would be used.
|
||||
|
||||
Options:
|
||||
|
||||
|
||||
* "outputstream", value const char * - output stream to write to
|
||||
* "stdout" - write everything to stdout
|
||||
* "stderr" - write everything to stderr
|
||||
* "default" - use the default settings - in this case errors and fatal would
|
||||
go to stderr everything else to stdout
|
||||
* debug - use the debug output. Only used on windows on all operating systems
|
||||
this behaves as as if default was set.
|
||||
|
||||
### File
|
||||
The file appender writes the textual output to a file.
|
||||
|
||||
Options:
|
||||
|
||||
* "outputfilename", value const char*, filename to use
|
||||
* "outputfilepath", value const char*, location of the file
|
||||
|
||||
### Udp
|
||||
|
||||
This appender sends the loging messages to a pre-defined remote host via UDP.
|
||||
|
||||
Options:
|
||||
|
||||
* "target", value const char*, target to send the data too in the format
|
||||
host:port
|
||||
|
||||
If no target is set the default one 127.0.0.1:20000 is used. To receive the
|
||||
log messages one can use netcat. To receive the default target the following
|
||||
command could be used.
|
||||
```
|
||||
nc -u 127.0.0.1 -p 20000 -l
|
||||
```
|
||||
|
||||
### Syslog (optional)
|
||||
|
||||
Use syslog for outputting the debug messages. No options available.
|
||||
|
||||
### Journald (optional)
|
||||
|
||||
For outputting the log messages to journald this appender can be used.
|
||||
The available options are:
|
||||
|
||||
* "identifier", value const char*, the identifier to use for journald (default
|
||||
is winpr)
|
Loading…
Reference in New Issue
Block a user