feat: print log message of force stopped services to debug #1785
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Some service software like velocity tend to crash / stop on a wrong configuration file without printing any warning message. CloudNet does not pick them up and report them anywere thus it is hard for a user to debug why the service is constantly stopping and the user needs to rely on great timing to see something in the screen.
Modification
Add a listener on the existing CloudServicePreForceStopEvent that prints the cached log lines from a service when its killed.
Printing is only done when the feature is not deactivated (set
cloudnet.service-watchdog-thresholdto <= 0) and the service is only living for the seconds specified incloudnet.service-watchdog-threshold.Also the watchdog now only runs every second like it was intended to instead of every tick. Configurable using
cloudnet.service-watchdog-interval(millis between to watchdog runs)Result
Easy debugging for non warn related stop / kills of services.