ログ API

sphinx.util.logging.getLogger(name)[source]

sphinx.util.logging.SphinxLoggerAdapterによってラップされたロガーを取得します。

Sphinx ロガーは常に sphinx.* 名前空間を使用し、ルートロガーの設定から独立しています。これにより、サードパーティの拡張機能またはインポートされたアプリケーションがロガー設定をリセットした場合でも、ログの一貫性が確保されます。

使用例

>>> 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)[source]

typesubtype キーワードを許可する LoggerAdapter。

error(msg, *args, **kwargs)
critical(msg, *args, **kwargs)
warning(msg, *args, **kwargs)[source]

指定されたレベルで、このロガーにメッセージを記録します。基本的に、引数は Python の logging モジュールと同じです。

さらに、Sphinx ロガーは次のキーワード引数をサポートしています。

typesubtype

警告ログのカテゴリ。これは、suppress_warnings 設定によって警告を抑制するために使用されます。

location

警告が発生した場所。各ログにパスと行番号を含めるために使用されます。docname、docname と行番号のタプル、ノードを許可します。

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

ログの色。デフォルトでは、エラーレベルのログは "darkred" で色付けされ、クリティカルレベルのログは色付けされず、警告レベルのログは "red" で色付けされます。

log(level, msg, *args, **kwargs)[source]
info(msg, *args, **kwargs)
verbose(msg, *args, **kwargs)[source]
debug(msg, *args, **kwargs)

指定されたレベルで、このロガーにメッセージを記録します。基本的に、引数は Python の logging モジュールと同じです。

さらに、Sphinx ロガーは次のキーワード引数をサポートしています。

nonl

True の場合、ロガーはログメッセージの末尾で改行しません。デフォルトは False です。

location

メッセージが出力された場所。詳細については、SphinxLoggerAdapter.warning() を参照してください。

color

ログの色。デフォルトでは、info と verbose レベルのログは色付けされず、debug レベルのログは "darkgray" で色付けされます。

sphinx.util.logging.pending_logging()[source]

すべてのログを一時的に延期するためのコンテキストマネージャー。

例えば

>>> 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()[source]

警告ログを一時的に延期するためのコンテキストマネージャー。

pending_logging() と同様です。

sphinx.util.logging.prefixed_warnings()[source]

すべての警告ログレコードにプレフィックスを一時的に追加するためのコンテキストマネージャー。

例えば

>>> with prefixed_warnings("prefix:"):
>>>     logger.warning('Warning message!')  # => prefix: Warning message!

バージョン 2.0 で追加されました。