我希望通过我希望处理日志的方式来处理所有警告.甚至在导入库期间发出的这些.
这意味着必须在导入库之前完成日志记录的配置.
搜索一段时间之后,我认为在自定义中配置日志记录sitecustomize.py可能是一种解决方案
但sitecustomize.py不知何故,黑魔法只有少数人知道它,甚至更少的人使用它.
有没有更明显的方法来确保在导入库之前完成我的日志配置?
不幸的是,似乎无法通过环境变量配置日志记录.
更新
根据我的观点,我没有得到任何可以接受的答案.我认为你需要将登录分为两个责任区:
一旦第一行代码被python解释器执行,区域"环境"就对代码负责.现在做任何配置都为时已晚.我想看看将日志记录设置为调用python解释器的一部分.
一种解决方案可以是环境变量:
PYTHON_LOGGING_CONFIG=/path-to-env/etc/config.yaml
Run Code Online (Sandbox Code Playgroud)
或者是翻译的参数:
python --logging-config=path-to-env/etc/config.yaml script.py
Run Code Online (Sandbox Code Playgroud)
如果您希望日志记录覆盖导入,那么在导入任何其他内容之前显然无法显式配置日志记录.
但是,如果您希望日志记录配置更加明显,那么有各种技巧可以帮助您实现这一点.例如,您的主脚本可以像这样简短,只是为了强调特殊情况:
import siteconfiguration
siteconfiguration.configure_site() # This must be done before any other import
import application
if __name__ == "__main__":
application.run()
Run Code Online (Sandbox Code Playgroud)
这仍然打破了将所有进口放在首位的规则,但它也明确说明了为什么要这样做.使用该代码的每个人都将理解您的意图.
特殊情况不足以打破规则.
虽然实用性胜过纯洁.
(Python的禅宗,Tim Peters)
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |