gpt4 book ai didi

logging - Cython 日志记录文件名和模块

转载 作者:行者123 更新时间:2023-12-02 16:51:51 25 4
gpt4 key购买 nike

如果您call logging module来自cythonised代码包括 funcName and module那么你会得到这些属性的错误值。相反,您从第一个更高级别的调用者那里获取值,而不是来自 cython,这是极具误导性的。原因是 cython 没有 generate call frames ,因此它们对于logging.findCaller方法是不可见的。

有没有办法让 cython 进行日志记录?

我不想更改每个调用日志记录的位置。如果有其他查找信息的方法,我很乐意对logging.findCaller进行monkeypatch。

最佳答案

短期答案是 cython 不会添加堆栈帧,也没有配置来执行此操作(异常(exception)情况除外,在堆栈展开之后)。邮件列表上的开发人员正在考虑将它们添加为一个选项,日志记录是为什么需要它们的另一个例子。

短期解决方法是在编译期间调整代码(以编程方式),将帧信息(方法名称、模块、行号等)存储到线程局部变量中,并使用猴子补丁logging.findCaller来获取这些详细信息(如果可用) .

关于logging - Cython 日志记录文件名和模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com