From 917b784eadcdbc62ba28af3b3c163dd74f1e63fd Mon Sep 17 00:00:00 2001 From: Karl W Schulz Date: Fri, 8 Mar 2024 09:38:02 -0600 Subject: [PATCH] refactor logging initialization into two steps: (1) setup_logging_handler -> called prior to arg parsing (2) setup_logging_priority -> called after arg parsing Signed-off-by: Karl W Schulz [ROCm/rocprofiler-compute commit: e24e6c35a506f3804b412e2b5d95a202715e3dbd] --- .../rocprofiler-compute/src/omniperf_base.py | 7 ++--- .../rocprofiler-compute/src/utils/logger.py | 26 ++++++++++++------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_base.py b/projects/rocprofiler-compute/src/omniperf_base.py index 9b8ea2490c..9b945d9bfa 100644 --- a/projects/rocprofiler-compute/src/omniperf_base.py +++ b/projects/rocprofiler-compute/src/omniperf_base.py @@ -23,6 +23,7 @@ ##############################################################################el import argparse +import logging import sys import os from pathlib import Path @@ -37,7 +38,7 @@ from utils.utils import ( console_log, console_error, ) -from utils.logger import setup_logging +from utils.logger import setup_logging_handler, setup_logging_priority from argparser import omniarg_parser import config import pandas as pd @@ -69,10 +70,10 @@ class Omniperf: self.__options = {} self.__supported_archs = SUPPORTED_ARCHS self.__mspec: MachineSpecs = None # to be initalized in load_soc_specs() - + setup_logging_handler() self.set_version() self.parse_args() - self.__loglevel = setup_logging(self.__args.verbose, self.__args.quiet) + self.__loglevel = setup_logging_priority(self.__args.verbose, self.__args.quiet) setattr(self.__args, "loglevel", self.__loglevel) self.__mode = self.__args.mode diff --git a/projects/rocprofiler-compute/src/utils/logger.py b/projects/rocprofiler-compute/src/utils/logger.py index 06bfce1975..1d33933ded 100644 --- a/projects/rocprofiler-compute/src/utils/logger.py +++ b/projects/rocprofiler-compute/src/utils/logger.py @@ -51,8 +51,21 @@ class ColoredFormatter(logging.Formatter): return logging.Formatter.format(self, record) -# Setup logger -def setup_logging(verbosity, quietmode): +# Setup logger handler - provided as separate function to be called +# prior to argument parsing +def setup_logging_handler(): + if False: + formatter = ColoredFormatter("%(levelname)s %(message)s") + else: + formatter = logging.Formatter("%(message)s") + + handler = logging.StreamHandler(sys.stdout) + handler.setFormatter(formatter) + logging.basicConfig(handlers=[handler]) + + +# Setup logger priority +def setup_logging_priority(verbosity, quietmode): # register a trace level logger logging.TRACE = logging.DEBUG - 5 logging.addLevelName(logging.TRACE, "TRACE") @@ -82,11 +95,6 @@ def setup_logging(verbosity, quietmode): print("Ignoring unsupported OMNIPERF_LOGLEVEL setting (%s)" % loglevel) sys.exit(1) - if False: - formatter = ColoredFormatter("%(levelname)s %(message)s") - else: - formatter = ColoredFormatter("%(message)s") - handler = logging.StreamHandler(sys.stdout) - handler.setFormatter(formatter) - logging.basicConfig(level=loglevel, handlers=[handler]) + # update priority + logging.getLogger().setLevel(loglevel) return loglevel