#!/usr/bin/python3
-from nitsi.test import test
-from nitsi.logger import init_logging
-import logging
import argparse
+import logging
+from nitsi.logger import init_logging, Log_Formatter
from nitsi.recipe import RecipeExeption
-
-from nitsi.test import TestException
+import nitsi.test
logger = logging.getLogger("nitsi")
-logger.setLevel(logging.DEBUG)
-# create console handler with a higher log level
-ch = logging.StreamHandler()
-ch.setLevel(logging.DEBUG)
-formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+# create console handler
+ch = logging.StreamHandler()
+formatter = Log_Formatter()
ch.setFormatter(formatter)
-# add the handlers to the logger
+# add the handler to the logger
logger.addHandler(ch)
def main():
parser.add_argument("-d", "--directory", dest="dir")
+ parser.add_argument( "--log-level", choices=[ "debug", "error", "info", "warning" ], dest="log_level", default="info")
+
parser.add_argument("-v", "--version", help="Display version and exit",
action="store_true", dest="version")
args = parser.parse_args()
- # We just log the version and exit
+ # We just log the version and exit
if args.version:
logger.info("nitsi version: {}".format("@PACKAGE_VERSION@"))
return 0
+
+ # Set the log level
+ # We are doing this after we logged the version
+ # to avoid that the version is not shown because of the log level
+ if args.log_level == "info":
+ logger.setLevel(logging.INFO)
+ elif args.log_level == "debug":
+ logger.setLevel(logging.DEBUG)
+ elif args.log_level == "warning":
+ logger.setLevel(logging.WARNING)
+ elif args.log_level == "error":
+ logger.setLevel(logging.ERROR)
+
# For all other stuff we need logging to a file
log_dir = init_logging(args.dir)
# We now going to log everything to log_dir/genaral.log
fh = logging.FileHandler("{}/general.log".format(log_dir))
- fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
logger.debug("We now logging everything to {}/general.log".format(log_dir))
# here we run a test
try:
- currenttest = test(args.dir, log_dir)
+ currenttest = nitsi.test.Test(log_dir, dir=args.dir)
currenttest.read_settings()
currenttest.virtual_environ_setup()
currenttest.load_recipe()
except RecipeExeption as e:
logger.exception(e)
- exit(2)
+ return 2
try:
currenttest.virtual_environ_start()
currenttest.run_recipe()
- except TestException as e:
+ except nitsi.test.TestException as e:
logger.exception(e)
return 1
except BaseException as e:
return 0
if __name__ == "__main__":
- main()
\ No newline at end of file
+ return_value = main()
+ logger.debug("Return value of main is: {}".format(return_value))
+ exit(return_value)