fix: forward backend logging to electron #2236
Merged
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
Problem: When IDE2 runs in production mode (the app is bundled up), it logs into a file. When IDE2 starts, multiple processes start under the hood. The process hierarchy is like this electron main > backend main >> plugins_fsWatcher_and_other_subProcesses. IDE2 logs only in the backend main process and its child processes. The electron main process logging is missing from the generated single log file.
Since the electron main logging is missing, it very often happens that IDE2 does not even start on users' env (due to file permission, IPv6 vs. IPv4 issue, etc.), and the cause (error) is missing from the logs.
This PR enables logging in the electorn main module, and the backend main with all its children will forward the log to the electron main via IPC. So it's in a centralized place and can be written into a file in production mode.
Steps to verify:
~/Library/Logs/Arduino IDE
),You must see such entries in the generated log files:
The order of the log entries in the generated file and from the terminal is the same.
Change description
Other information
Reviewer checklist