繁体   English   中英

如何将根记录器上的记录重定向到自定义记录器?

[英]How to redirect logging on root logger to custom logger?

我有一个用例,我希望所有日志都转到一个文件中。 我使用的是自定义记录器,在该记录器上定义了文件处理程序以记录到所需文件。

我面临的问题是我使用的是使用外部记录程序的外部模块,我也不想将它们记录到同一文件中。

自定义记录器模块


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")

有什么方法可以捕获同一文件中外部模块中的日志?

只需将您的处理程序添加到根记录器,而不是您的记录器即可。

root_logger = logging.getLogger()
root_logger.addHandler(...)

这样,任何日志都将到达此文件处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM