Logging API¶
- sphinx.util.logging.getLogger(name)[源代码]¶
Get logger wrapped by
sphinx.util.logging.SphinxLoggerAdapter
.Sphinx logger always uses
sphinx.*
namespace to be independent from settings of root logger. It ensures logging is consistent even if a third-party extension or imported application resets logger settings.Example usage:
>>> from sphinx.util import logging >>> logger = logging.getLogger(__name__) >>> logger.info('Hello, this is an extension!') Hello, this is an extension!
- class sphinx.util.logging.SphinxLoggerAdapter(logging.LoggerAdapter)[源代码]¶
LoggerAdapter allowing
type
andsubtype
keywords.- error(msg, *args, **kwargs)¶
- critical(msg, *args, **kwargs)¶
- warning(msg, *args, **kwargs)¶
Logs a message on this logger with the specified level. Basically, the arguments are as with python’s logging module.
In addition, Sphinx logger supports following keyword arguments:
- type, *subtype*
Categories of warning logs. It is used to suppress warnings by
suppress_warnings
setting.- location
Where the warning happened. It is used to include the path and line number in each log. It allows docname, tuple of docname and line number and nodes:
logger = sphinx.util.logging.getLogger(__name__) logger.warning('Warning happened!', location='index') logger.warning('Warning happened!', location=('chapter1/index', 10)) logger.warning('Warning happened!', location=some_node)
- color
The color of logs. By default, error level logs are colored as
"darkred"
, critical level ones is not colored, and warning level ones are colored as"red"
.
- info(msg, *args, **kwargs)¶
- debug(msg, *args, **kwargs)¶
Logs a message to this logger with the specified level. Basically, the arguments are as with python’s logging module.
In addition, Sphinx logger supports following keyword arguments:
- nonl
If true, the logger does not fold lines at the end of the log message. The default is
False
.- location
Where the message emitted. For more detail, see
SphinxLoggerAdapter.warning()
.- color
The color of logs. By default, info and verbose level logs are not colored, and debug level ones are colored as
"darkgray"
.
- sphinx.util.logging.pending_logging()[源代码]¶
Context manager to postpone logging all logs temporarily.
For example:
>>> with pending_logging(): >>> logger.warning('Warning message!') # not flushed yet >>> some_long_process() >>> Warning message! # the warning is flushed here
- sphinx.util.logging.pending_warnings()[源代码]¶
Context manager to postpone logging warnings temporarily.
Similar to
pending_logging()
.