nette / tracy

😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.
https://tracy.nette.org
Other
1.75k stars 218 forks source link

Ability to log all errors in development mode #575

Open maryo opened 6 months ago

maryo commented 6 months ago

We'd like to be able to log all errors in development mode so they are both displayed in the bar but also logged using (our instance of) ILogger. This would help up us not only when debugging errors during AJAX calls or some server-server requests, there are multiple use cases where this is useful (we have a special page with links to all older bluescreens).

Currently, the are DevelopmentStrategy and ProductionStrategy classes but they are both internal and final. I understand it is for a reason but... In 2.9.7, the internal method getStrategy has no return typehint so it is still possible to do some black magic like decorating the strategy to do both 😇 👿.

\Closure::bind(
    static function () {
        Debugger::$strategy[false] = new LoggingDevelopmentStrategy(Debugger::getStrategy());
    },
    null,
    Debugger::class
)();

Since 2.10.0 the getStrategy has ProductionStrategy|DevelopmentStrategy return typehint so this ugly hack is not possible anymore. Wouldn't it be possible to support such a feature or somehow make this ugly hack possible again 😇?