Set a default logger if file methods fail 09/6109/1
authorThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 23 Aug 2017 16:51:25 +0000 (12:51 -0400)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 23 Aug 2017 16:52:25 +0000 (12:52 -0400)
In some environment such as ReadTheDocs it appears that pyprefix does
not appear to work as a backup. Let's fall back to a hardcoded logger in
the worst case situation.

Change-Id: Id3389fb05b7386f6d79026cc111982dac6e20efa
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
lftools/__init__.py

index e69007c..999812e 100644 (file)
@@ -20,6 +20,8 @@ import logging.config
 import os
 import sys
 
+log = logging.getLogger(__name__)
+
 
 def find_log_ini(file_name='logging.ini'):
     """Find the logging.ini file.
@@ -49,7 +51,14 @@ def find_log_ini(file_name='logging.ini'):
 
 
 log_ini_file = find_log_ini()
-logging.config.fileConfig(log_ini_file)
 
-log = logging.getLogger(__name__)
-log.info("Using logger config file {}".format(log_ini_file))
+if os.path.exists(log_ini_file):
+    logging.config.fileConfig(log_ini_file)
+    log.info("Using logger config file {}".format(log_ini_file))
+else:
+    formatter = logging.Formatter('%(asctime)s (%(levelname)s) %(name)s: %(message)s')
+    console_handler = logging.StreamHandler()
+    console_handler.setFormatter(formatter)
+    logging.getLogger("").setLevel(logging.NOTSET)
+    logging.getLogger("").addHandler(console_handler)
+    log.info("Log ini file not found. Using a default logger...")