logging --- イベントロギング¶
このモジュールは、標準 Python の logging パッケージの軽量なサブセットを MicroPython 向けに適応させたものです。階層的に命名された Logger オブジェクトによるレベル付きロギング、少数のハンドラ(StreamHandler、FileHandler)、Formatter を介した printf 形式のフォーマット、およびルートロガーを操作する関数に相当するモジュールレベルの便利関数をサポートします。
このモジュールは CPython の馴染みのある API に十分近く準拠しているため、標準ライブラリ向けに書かれた単純なアプリケーションはそのまま動作するはずです。フィルタ、複数プロセスのロック、設定ファイル形式、およびほとんどのハンドラクラスは提供されません。
レベル定数¶
関数¶
- logging.getLogger(name: str | None = None) Logger¶
name で登録された
Loggerを返し、初回使用時に作成します。name がNoneの場合はルートロガーが返されます。name="root"を指定した(または name を指定しない)最初の呼び出しでは、暗黙的にbasicConfigが呼び出され、sys.stderrに書き込むデフォルトのStreamHandlerが割り当てられます。
- logging.log(level: int, msg: str, *args) None¶
ルートロガーで level のメッセージをログ出力します。args は printf 形式の
%フォーマットを使って msg に埋め込まれます。単一の dict 引数はマッピングとして使用されます。
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
getLogger().exception(msg, *args, exc_info=exc_info)と同等です。メッセージをERRORでログ出力し、exc_info が真の場合は加えて現在の例外のトレースバックをフォーマットします。exc_info 自体がBaseExceptionの場合はその例外のトレースバックが使用され、それ以外の場合は利用可能であればsys.exc_info()が参照されます。
- logging.shutdown() None¶
既知のすべてのロガーに割り当てられたすべてのハンドラを閉じ、ロガーを破棄します。
sys.atexitフックが利用可能な場合は、それを通じて自動的に登録されます。
- logging.addLevelName(level: int, name: str) None¶
テキストの name を数値の level に関連付け、
Formatterが%(levelname)sを介してレンダリングできるようにします。
- logging.basicConfig(filename: str | None = None, filemode: str = 'a', format: str | None = None, datefmt: str | None = None, level: int = WARNING, stream=None, encoding: str = 'UTF-8', force: bool = False) None¶
ルートロガーを単一のハンドラで設定します。
filename が指定された場合は、filemode と encoding を使って
FileHandlerが作成されます。それ以外の場合は、stream(デフォルトはsys.stderr)に書き込むStreamHandlerが使用されます。format と datefmt は新しい
Formatterにそのまま渡されます。level はハンドラのレベルとルートロガーのレベルの両方を設定します。
ルートロガーにすでにハンドラがある場合、この関数は何もしません。ただし force が
Trueの場合は、既存のハンドラが閉じられて置き換えられます。
クラス¶
- class logging.Logger(name: str, level: int = NOTSET)¶
名前付きのロガーです。同じ名前に対して
getLoggerが同じインスタンスを返せるよう、ロガーは直接ではなくgetLoggerを介して構築してください。- log(level: int, msg: str, *args) None¶
msg を level でログ出力します。args は
%演算子で msg に埋め込まれます。最初の位置引数が dict の場合はマッピングとして使用されます。
- class logging.Handler(level: int = NOTSET)¶
すべてのハンドラの基底クラスです。サブクラスは
emit()を実装します。- close() None¶
ハンドラが保持しているリソースを解放します。
shutdownから、またFileHandlerが閉じられる際に呼び出されます。
- class logging.StreamHandler(stream=None)¶
フォーマットされたレコードに続けて
self.terminator(デフォルトは"\n")を stream に書き込むハンドラです。stream のデフォルトはsys.stderrです。- stream¶
出力先のストリームオブジェクト。
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
指定された mode と encoding で filename を開き、フォーマットされたレコードをそこに書き込む
StreamHandlerのサブクラスです。下層のファイルはclose()で閉じられます。
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
LogRecordインスタンスを文字列にレンダリングします。fmt は printf 形式のテンプレートです。認識されるキーは
%(name)s、%(message)s、%(msecs)d、%(asctime)s、%(levelname)sです。未設定の場合は"%(levelname)s:%(name)s:%(message)s"がデフォルトとなります。datefmt は
%(asctime)sをレンダリングするために使用されるtime.strftimeのテンプレートです。デフォルトは"%Y-%m-%d %H:%M:%S"です。- formatTime(datefmt: str, record: LogRecord) str | None¶
record.ctをtime.strftimeと datefmt を使ってフォーマットします。time.strftimeが利用できないプラットフォームではNoneを返します。
- format(record: LogRecord) str¶
record をレンダリングします。テンプレートが
asctimeを使用している場合は、まずformatTime()が呼び出されてrecord.asctimeが設定されます。