简而言之,我编写ETL管道。它们通常在高级脚本中描述。在这些脚本中,我使用不同的内部库(我们管理它们),提供实用函数、工具或内部数据结构。
处理多个从不同仓库导入的软件包时,记录日志的常见最佳实践是什么?
我的问题是:
1)我应该将日志放在库中吗?还是只放在顶层脚本中?
一方面,在某些库函数/类中显示一些信息可能很有用。另一方面,它会强制库客户端使用特定的记录器。
我查看了一些开源项目,似乎根本没有记录日志。
2)如果我们确实将日志放在所有共享库中,Python中传递唯一记录器的最佳实践是什么?
我希望我的日志格式和策略在每个库调用中保持一致,因为所有内容都作为“整体”运行。我应该在主脚本中初始化我的记录器,并将相同的记录器传递给我创建的每个对象吗?这对我来说似乎是多余的。我看到另一个模式,所有需要日志记录的类都将继承自日志记录类。对我来说,这似乎可能过度设计并使整体架构变得复杂。
我在另一个stackoverflow中读到实际上,每个记录器都是父级包记录器的子级。当软件包来自不同的仓库时,如何应用它?
谢谢
处理多个从不同仓库导入的软件包时,记录日志的常见最佳实践是什么?
我的问题是:
1)我应该将日志放在库中吗?还是只放在顶层脚本中?
一方面,在某些库函数/类中显示一些信息可能很有用。另一方面,它会强制库客户端使用特定的记录器。
我查看了一些开源项目,似乎根本没有记录日志。
2)如果我们确实将日志放在所有共享库中,Python中传递唯一记录器的最佳实践是什么?
我希望我的日志格式和策略在每个库调用中保持一致,因为所有内容都作为“整体”运行。我应该在主脚本中初始化我的记录器,并将相同的记录器传递给我创建的每个对象吗?这对我来说似乎是多余的。我看到另一个模式,所有需要日志记录的类都将继承自日志记录类。对我来说,这似乎可能过度设计并使整体架构变得复杂。
我在另一个stackoverflow中读到实际上,每个记录器都是父级包记录器的子级。当软件包来自不同的仓库时,如何应用它?
谢谢
logging.info('传递数据到xyz函数')
等。 - sahasrara62