我有一个用例,我希望所有日志都放在一个文件中。我正在使用自定义记录器,在该记录器上定义了文件处理程序以记录到所需文件。
我面临的问题是我使用的外部模块正在使用root记录器,并且我也不想将它们记录到同一文件中。
自定义记录器模块
def initialize_logger():
logger = logging.getLogger("custom")
file_handler = FileHandler(filename="test")
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(FORMATTER)
logger.addHandler(file_handler)
return logger
def get_logger():
return logging.getLogger("custom")
我的应用程序中的模块正在使用以下代码
from log import get_logger
logger = get_logger()
logger.info("Test")
我正在使用的外部模块具有以下行。
logging.info("test")
有没有办法在同一文件的外部模块中捕获日志?
答案 0 :(得分:1)
只需将您的处理程序添加到根记录器,而不是您的记录器即可。
root_logger = logging.getLogger()
root_logger.addHandler(...)
这样,任何日志都将到达此文件处理程序。