Ducktape
Ducktape copied to clipboard
Redirect std::cout to both Debug and stdout
Is your feature request related to a problem? Please describe.
As of now, once an instance of Engine
has been created, all std::cout
and std::cerr
logs get forwarded into the Debug
class, instead of the default stdout
/stderr
. Though it's useful, it removes the ability of users to debug log normally, especially in scenarios where the Editor isn't open, or the Debug panel is inaccessible, for example in a released game distribution.
Describe the solution you'd like
Copy std::cout
/std::cerr
instead of simply forwarding, so that it is forwarded to both stdout
/stderr
(otherwise, the terminal window), while also being logged in the Debug
class.
Hey, could I be assigned to this?
Due to the one std::streambuf
limit per std::ostream
, logging has been split into two.
Printing to std::cout
and std::cerr
outputs to the default stdout (terminal), like normal.
Printing to engine.debug
outputs to the Editor's built in Console.
Example usage:
engine.debug.err << "This is an error\n";
engine.debug.log << "This is a log\n";
Styling based on log type yet to be implemented.
On second thought this looks possible to me now. I'll give it a try soon.