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

10 visualizzazioni (ultimi 30 giorni)
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 Commenti
Walter Roberson
Walter Roberson il 18 Giu 2025
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 il 19 Giu 2025
Modificato: Zohar il 19 Giu 2025
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...

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Desktop in Help Center e File Exchange

Tag

Prodotti


Release

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by