Python で logging の出力を標準出力にする2023年03月08日 11時21分09秒

時おり、logging でどう出力されるのか実験したくなる事がある。そんな時に一番便利な方法は、logging.basicConfig を使って、logging に標準出力に出すようにすると楽。
% python
Python 3.8.16 (default, Dec  7 2022, 12:21:17) 
>>> import logging
>>> import sys
>>> logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
>>> logging.debug("123")
DEBUG:root:123
>>> logging.debug("123", "456")
--- Logging error ---
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/logging/__init__.py", line 1084, in emit
    msg = self.format(record)
  File "/usr/local/lib/python3.8/logging/__init__.py", line 928, in format
    return fmt.format(record)
  File "/usr/local/lib/python3.8/logging/__init__.py", line 663, in format
    record.message = record.getMessage()
  File "/usr/local/lib/python3.8/logging/__init__.py", line 368, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "<stdin>", line 1, in <module>
Message: '123'
Arguments: ('456',)
logging に複数の引数を渡すと、print とは違ってエラーになるようだ。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2023/03/08/9567879/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。