【问题标题】:Redirect standard out from C++ to Python log file (logging module)将标准从 C++ 重定向到 Python 日志文件(日志记录模块)
【发布时间】:2020-09-15 12:40:27
【问题描述】:

类似于question,但更具体地说,如何将 Python 调用的 C++ 标准重定向到日志文件?使用带有RotatingFileHandler 的python logging 模块创建并写入日志文件。目前使用 Python 2.7.x。

【问题讨论】:

  • 写答案的时候,错过了python 2.7的部分……python 2.7已经死了。

标签: python python-2.7 logging file-descriptor


【解决方案1】:

我会冒险回答,同时希望有人提出更好的建议。而且我没有给出代码示例,因为这需要我时间。我猜这也取决于你如何包装 C++。

如果我控制了 C++ 代码,并且它不是太大,我会用一个日志机制替换所有使用 stdout,我可以轻松地重定向到从 python 公开的函数。

如果这不可能,我会将标准输出(全部在 C++ 中)重定向到自定义流缓冲区(类似于 this,但使用写入从 python 公开的函数的流)。我会检查boost's streambuffer

编辑 1

如果你使用 PyBind11 暴露 C++,请检查capturing-standard-output-from-ostream

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2014-10-21
    • 2017-04-13
    • 2011-05-19
    • 2020-11-07
    • 2018-05-27
    • 2018-12-08
    相关资源
    最近更新 更多