forked from openlp/openlp
Try to close down the error log file at the end of OpenLP's execution
This commit is contained in:
parent
50fcc9b5d5
commit
f0b6a723e3
@ -23,6 +23,7 @@
|
|||||||
"""
|
"""
|
||||||
The entrypoint for OpenLP
|
The entrypoint for OpenLP
|
||||||
"""
|
"""
|
||||||
|
import atexit
|
||||||
import faulthandler
|
import faulthandler
|
||||||
import logging
|
import logging
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
@ -36,18 +37,33 @@ from openlp.core.common.applocation import AppLocation
|
|||||||
from openlp.core.common.path import create_paths
|
from openlp.core.common.path import create_paths
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
error_log_file = None
|
||||||
|
|
||||||
|
|
||||||
|
def tear_down_fault_handling():
|
||||||
|
"""
|
||||||
|
When Python exits, close the file we were using for the faulthandler
|
||||||
|
"""
|
||||||
|
global error_log_file
|
||||||
|
error_log_file.close()
|
||||||
|
|
||||||
|
|
||||||
def set_up_fault_handling():
|
def set_up_fault_handling():
|
||||||
"""
|
"""
|
||||||
Set up the Python fault handler
|
Set up the Python fault handler
|
||||||
"""
|
"""
|
||||||
|
global error_log_file
|
||||||
# Create the cache directory if it doesn't exist, and enable the fault handler to log to an error log file
|
# Create the cache directory if it doesn't exist, and enable the fault handler to log to an error log file
|
||||||
try:
|
try:
|
||||||
create_paths(AppLocation.get_directory(AppLocation.CacheDir))
|
create_paths(AppLocation.get_directory(AppLocation.CacheDir))
|
||||||
faulthandler.enable((AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb'))
|
error_log_file = (AppLocation.get_directory(AppLocation.CacheDir) / 'error.log').open('wb')
|
||||||
|
atexit.register(tear_down_fault_handling)
|
||||||
|
faulthandler.enable(error_log_file)
|
||||||
except OSError:
|
except OSError:
|
||||||
log.exception('An exception occurred when enabling the fault handler')
|
log.exception('An exception occurred when enabling the fault handler')
|
||||||
|
atexit.unregister(tear_down_fault_handling)
|
||||||
|
if error_log_file:
|
||||||
|
error_log_file.close()
|
||||||
|
|
||||||
|
|
||||||
def start():
|
def start():
|
||||||
|
Loading…
Reference in New Issue
Block a user