我在编写 python 模块和类时经常有疑问,特别是:
我应该在哪里/如何放置控制日志记录的主标志以及在哪里/如何创建记录器,
它应该在模块级别吗?---因此需要global MyLogger在每个方法中几乎无处不在。
它应该是传递给方法和/或类的参数吗?也许决定一个方法或类是否需要它,也许我可以使用**args星星魔法,像myMethod(..., logger=Mylogger)?
我应该在哪里定义/设置I_logged_something标志?(...或者我应该依靠if MyLogger: MyLogger.log('something'))
当类或模块被导入时呢?
什么是 Pythonic 的日志记录方式?您如何使用日志记录工具?
无论如何,您都可以在任何地方使用日志记录。
在您的模块中,使用:
import logging
log = logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)
并注销。根据您记录的消息类型使用不同的级别(log.info()、log.debug()、log.error()等)。
你的主入口点,则配置的logging模块输出。这可以包括完全禁用任何输出,或将调试信息定向到文件,但将错误记录到控制台。
你的模块不需要关心,logging模块处理输出处理程序的配置和格式化为全局状态。
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |