我正在尝试以这种方式创建自定义记录器:
文件: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
我得到的行test.py
,但没有完整路径。
我究竟做错了什么?谢谢!
在 Arch Linux x86_64 上使用 Python 2.7.4 和 3.3.1 进行了测试。