この方法でカスタムロガーを作成しようとしています:
ファイル: logger.py
import logging
class Logger(logging.getLoggerClass()):
def warning(self, msg, *args, **kwargs):
super(Logger, self).warning(msg, *args, **kwargs)
logging.setLoggerClass(Logger)
log = logging.getLogger('test')
handler = logging.StreamHandler()
formatter = logging.Formatter('%(pathname)s')
handler.setFormatter(formatter)
log.addHandler(handler)
ファイル: test.py
from logger import log
log.warning('')
出力:
$ python test.py
/home/dario/Desktop/logging_test/logger.py
予想される出力は次のようになります。
/home/dario/Desktop/logging_test/test.py
さらに奇妙なことに、 setLoggerClass
get の行にコメントを付けるとtest.py
、完全なパスはありません。
私は何を間違っていますか?ありがとうございました!
Arch Linux x86_64 上の Python 2.7.4 および 3.3.1 でテスト済み。