qi.logging API¶
Introduction¶
The module provides logging capabilities integrated with the qi sdk. It’s for most of the API mapped on standard logging facility for python. The module provides a lot of functionality and flexibility.
Warning
The debug log level is not available in python, because there is no debug build in python. Use verbose instead.
There are two ways to use this module:
- Use qi.Logger object with defined category
- Use static methods without defined category
qi.Logger Object Reference¶
Loggers have the following attributes and methods. Note that Loggers are never instantiated directly, but always through
the module-level function qi.logging.Logger(category)
.
The category
is potentially a period-separated hierarchical value, like foo.bar.baz
(though it could also be
just plain foo
, for example). This category will be the default category print by your logger inside your logs.
Class qi.Logger¶
-
Logger.
fatal
(msg[, *args])¶ Logs a message with level
FATAL
on the logger. Themsg
is the message format string, and theargs
are the arguments which are merged intomsg
using the string formatting operator.import qi.logging logger = qi.logging.Logger("network") logger.fatal("Protocol problem: ", "connection reset")
would print something like:
[F] 1458553342.543230 3630 network: Protocol problem: connection reset
-
Logger.
error
(msg[, *args])¶ Logs a message with level
ERROR
on the logger. The arguments are interpreted as for fatal().
-
Logger.
warning
(msg[, *args])¶ Logs a message with level
WARNING
on the logger. The arguments are interpreted as for fatal().
Static Methods Reference¶
-
qi.logging.
setLevel
(lvl)¶ Sets the threshold to
lvl
. Logging messages which are less severe thanlvl
will be ignored. When a handler is created, the level is set toINFO
(which causes all messages to be processed exceptVERBOSE
).import qi.logging logger = qi.logging.Logger("test.logging") qi.logging.setLevel(qi.logging.WARNING)
would only print logs more severe or equal than
WARNING
(ei:FATAL
,ERROR
,WARNING
)
-
qi.logging.
setContext
(ctx)¶ Sets differents context when printing logs. Context
ctx
is a bit field (integer). All different contexts are listed below. You can add different contexts to get multiple information.1 Verbosity 2 Short Verbosity 4 System Date 8 Thread ID 16 Category 32 File 64 Function 128 End Of Line 256 Date Here is some useful values
26 Short Verbosity + Thread ID + Category 30 Short Verbosity + Thread ID + System Date + Category 126 Short Verbosity + Thread ID + System Date + Category + File + Function 254 Short Verbosity + Thread ID + System Date + Category + File + Function + EOL
-
qi.logging.
setFilters
(filters)¶ Sets
filters
to display only logs that match filters categories rules. Rules are separated by colon. Each category can include a ‘*’ for globbing. Each rules can be:+CAT
: enable categoryCAT
-CAT
: disable categoryCAT
CAT=level
: set categoryCAT
tolevel
import qi.logging logger = qi.logging.Logger("test.logging") qi.logging.setFilters("qi.*=verbose:-qi.foo:+qi.foo.bar")
would print all
qi.*
logs inINFO
and remove allqi.foo
logs exceptqi.foo.bar
.
-
qi.logging.
fatal
(cat, msg[, *args])¶ Logs a message with level
FATAL
and categorycat
on the logger. Themsg
is the message format string, and theargs
are the arguments which are merged intomsg
using the string formatting operator.import qi.logging qi.logging.fatal("network", "Protocol problem: ", "connection reset")
would print something like:
[F] 1458553342.543230 3630 network: Protocol problem: connection reset
-
qi.logging.
error
(cat, msg[, *args])¶ Logs a message with level
ERROR
on the logger. The arguments are interpreted as for fatal().
-
qi.logging.
warning
(cat, msg[, *args])¶ Logs a message with level
WARNING
on the logger. The arguments are interpreted as for fatal().