Error logs are silently lost if LogPlugin
is added late.
#13409
Labels
A-Diagnostics
Logging, crash handling, error reporting and performance analysis
C-Bug
An unexpected or incorrect behavior
Problem
Perfectly good error logs are silently lost if
DefaultPlugins
orLogPlugin
has not been added early enough.I found this behavior on the main branch but I expect it goes pretty far back.
Example
I was mucking around with mesh2d_manual for reasons and I made this mistake: I put
ExtractResourcePlugin
ahead ofDefaultPlugins
.I was befuddled by this because I could see the error message in the code and assumed I must not be hitting that execution path. I added some
eprintln!
and figured out it was theLogPlugin
that needed to come first before the error was reported. To provoke the error again and log it, I addedLogPlugin
manually.This then showed me the right error message:
This is a great error message and would have set me straight if I had seen it.
Suggested Solutions
Fix in the small
One could have
ExtractResourcePlugin
come beforeDefaultPlugins
if it did its work infinish()
rather thanbuild()
. I've seen a few plugins opt for this when dealing with theRenderApp
. Maybe that should be done but I think that's avoiding a larger issue.Accumulate Log Counts
Perhaps errors emitted before
LogPlugin
ought to be accumulated somehow so they aren't silently lost untilLogPlugin
is added. Keeping an accounting of the missing log types would be helpful. Then whenLogPlugin
is added, it could emit this warning if there are missing log types that we care about:Maybe a
LogCountPlugin
could be devised that only collects those counts.And if the
App
never addsLogPlugin
, maybe those counts could be made available somewhere.Conclusion
I'm happy to submit a PR for either of these solutions if desired.
The text was updated successfully, but these errors were encountered: