【发布时间】:2013-12-15 03:00:41
【问题描述】:
我有一个由许多其他类继承的类。相关类有一个记录方法,并在我希望记录的文本旁边记录一些额外的参数:
import logging
# some lines to set logger
log = logging.getLogger('some_loger')
class SomeClass:
def log_it(self, log_text):
log.info(self.some_param + self.some_other_param + log_text + self.some_another_param)
在任何继承SomeClass的文件中:
class MyOtherClass(SomeClass):
def some_method(self):
...
...
self.log_it('let me log this text')
我还希望记录当前行号(调用self.log_it 的行),以便在相关文件中轻松找到当前记录行。
最好的pythonic方法是什么?
【问题讨论】:
-
旁注而不是直接回答您的问题,如果您不熟悉这个概念,您可能会对AOP 感兴趣。这种编程风格通常最好用日志记录用例来举例说明。如果您想了解更多信息 + Python 支持stackoverflow.com/questions/12356713/…,也可以查看这篇文章。概念证明:bitbucket.org/jsbueno/metapython/src/f48d6bd388fd/aspect.py