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.
What kind of change does this PR introduce?
This PR addresses the root cause of #841
Summary
This PR runs all
multiprocessing.Process
targets inside a try catch block, so any errors caused from within the target are gracefully handled.The second part of this PR modifies the logger used by all processes to replace the default handler with a file handler, so all logs (including any exception traces) are written to the log file and can be used for debugging.
Checklist
How can your code be run and tested?
Introduce an exception in one of the crud methods (e.g.
insert_window_event
) and then build the app (python -m openadapt.build
) and run the built app. Start and complete a recording. The app should not crash and the logs should contain the exception raised in the crud method. The logs will be available at the~/Library/Preferences/openadapt/data
in Macos andAppData/Roaming/openadapt
in Windows