From 19495c471954498fd584a6531f27e006e8e083ba Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 20 Jan 2013 19:46:41 +0100 Subject: [PATCH] fixed Bug 1086987 (Log system does not log all exceptions) Fixes: https://launchpad.net/bugs/1086987 --- openlp/core/__init__.py | 14 ++++++-------- openlp/core/lib/__init__.py | 8 ++++++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index 644d90959..a6eb7721f 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -228,7 +228,7 @@ def set_up_logging(log_path): """ Setup our logging using log_path """ - check_directory_exists(log_path) + check_directory_exists(log_path, True) filename = os.path.join(log_path, u'openlp.log') logfile = logging.FileHandler(filename, u'w') logfile.setFormatter(logging.Formatter( @@ -264,13 +264,6 @@ def main(args=None): # Parse command line options and deal with them. # Use args supplied programatically if possible. (options, args) = parser.parse_args(args) if args else parser.parse_args() - if options.portable: - app_path = AppLocation.get_directory(AppLocation.AppDir) - set_up_logging(os.path.abspath(os.path.join(app_path, u'..', - u'..', u'Other'))) - log.info(u'Running portable') - else: - set_up_logging(AppLocation.get_directory(AppLocation.CacheDir)) qt_args = [] if options.loglevel.lower() in ['d', 'debug']: log.setLevel(logging.DEBUG) @@ -295,6 +288,10 @@ def main(args=None): app.setApplicationName(u'OpenLPPortable') Settings.setDefaultFormat(Settings.IniFormat) # Get location OpenLPPortable.ini + app_path = AppLocation.get_directory(AppLocation.AppDir) + set_up_logging(os.path.abspath(os.path.join(app_path, u'..', + u'..', u'Other'))) + log.info(u'Running portable') portable_settings_file = os.path.abspath(os.path.join(app_path, u'..', u'..', u'Data', u'OpenLP.ini')) # Make this our settings file @@ -310,6 +307,7 @@ def main(args=None): portable_settings.setValue(u'advanced/is portable', True) portable_settings.sync() else: + set_up_logging(AppLocation.get_directory(AppLocation.CacheDir)) app.setApplicationName(u'OpenLP') app.setApplicationVersion(get_application_version()[u'version']) # Instance check diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 37b8c1bb7..4f0f78cd9 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -335,14 +335,18 @@ def expand_tags(text): return text -def check_directory_exists(dir): +def check_directory_exists(dir, do_not_log=False): """ Check a theme directory exists and if not create it ``dir`` Theme directory to make sure exists + + ``do_not_log`` + To not log anything. This is need for the start up, when the log isn't ready. """ - log.debug(u'check_directory_exists %s' % dir) + if not do_not_log: + log.debug(u'check_directory_exists %s' % dir) try: if not os.path.exists(dir): os.makedirs(dir)