How to hook the command window to capture output in real-time?

6 次查看(过去 30 天)
I need a way to hook the command window to capture output in real-time. Probably modify the java ui. I'd like whenever a line (errors included) is written to the command window, it would pass through my callback, and I'll send it to my log.
The motivation is viewing output when running a script from C++ API. I'm flying blind here, and my scripts may take hours. Current solutions such as diary, log file, or returned output from c++ eval() provide output only on completion.
This has been a long standing problem:
Currently, whenever I can, I use my own logger:
However, when calling external libs such as gurobi or ipopt, I don't have control. I could hook each one to write its own log file, but its a hassle.
---
UPDATE
Considering the comments below, the post should be better named:
"How to capture C API output in real-time?"
Related post:
https://www.mathworks.com/matlabcentral/answers/52545-how-can-i-request-an-output-in-real-time-without-interrupting-my-program
  2 个评论
Walter Roberson
Walter Roberson 2025-6-18
If I recall correctly, diary() is specifically documented as flushing output no later than end-of-line... but the relevant documentation might be buried in release notes (that are no longer available online...)
Zohar
Zohar 2025-6-19
编辑:Zohar 2025-6-19
A correction: Diary flushes every line during an interactive session in the command window. However, it records nothing from the C API eval. Hooking the command window won't help me...

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Desktop 的更多信息

标签

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by