我需要在一个类中添加日志记录功能,根据调用的方法将其记录到单独的文件中,但我无法找到很多关于此的讨论或文档。
我有4个文件:01.log 02.log 03.log 04.log
,一个记录器,我有一个已经实现了功能的类。为了不过度复杂,让我们来做s说我已经简化了这样的类,我正在添加那些包含对logger的调用的行。
class MyClass():
def function1():
logger.info('function 1 was called')
#doing something
def function2(arg):
logger.info('function 2 was called')
#doing something
if arg is None:
logger.error('arg of function 2 was none')
#doing something
def function3():
logger.info('function 3 was called')
def function4():
logger.debug('debugging info')
现在,需要做的是只将function1日志发件到01.log文件,将function2只记录到02.log等等。
我正在考虑使用3个FileHandler和过滤器,这样只会让那些感兴趣的函数的LogRecords通过,但我不太了解如何利用LogRecord的funcName属性。另一个想法是拥有更多的记录器 - 每个功能一个 - 我会将他们的Propagate设置为false。然而,这似乎对我来说太过分了。
有没有更好的解决方案?如果没有,我怎样才能正确使用过滤器(可能还有LogRecord属性funcName)呢? 感谢