rework of logger.py setup to introduce another setup_file_handler() -

this function enables file-based logger output for use with profile
mode

Signed-off-by: Karl W Schulz <karl.schulz@amd.com>


[ROCm/rocprofiler-compute commit: 505e263279]
Bu işleme şunda yer alıyor:
Karl W Schulz
2024-03-08 15:02:48 -06:00
işlemeyi yapan: Karl W. Schulz
ebeveyn 4969416e5f
işleme fdbc5565f3
+30 -9
Dosyayı Görüntüle
@@ -51,21 +51,32 @@ class ColoredFormatter(logging.Formatter):
return logging.Formatter.format(self, record)
# Setup logger handler - provided as separate function to be called
# Setup console handler - provided as separate function to be called
# prior to argument parsing
def setup_logging_handler():
def setup_console_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])
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(formatter)
console_handler.set_name("console")
logging.getLogger().addHandler(console_handler)
# Setup logger priority
def setup_logging_priority(verbosity, quietmode):
# Setup file handler - enabled in profile mode
def setup_file_handler(loglevel, workload_dir):
filename = os.path.join(workload_dir, "log.txt")
file_handler = logging.FileHandler(filename, "w")
file_loglevel = min([loglevel, logging.INFO])
file_handler.setLevel(file_loglevel)
file_handler.setFormatter(logging.Formatter("%(message)s"))
logging.getLogger().addHandler(file_handler)
# Setup logger priority - called after argument parsing
def setup_logging_priority(verbosity, quietmode, appmode):
# register a trace level logger
logging.TRACE = logging.DEBUG - 5
logging.addLevelName(logging.TRACE, "TRACE")
@@ -95,6 +106,16 @@ def setup_logging_priority(verbosity, quietmode):
print("Ignoring unsupported OMNIPERF_LOGLEVEL setting (%s)" % loglevel)
sys.exit(1)
# update priority
logging.getLogger().setLevel(loglevel)
# update console loglevel based on command-line args/env settings
for handler in logging.getLogger().handlers:
if handler.get_name() == "console":
handler.setLevel(loglevel)
# set global loglevel to min of console/file settings in profile mode
if appmode == "profile":
global_loglevel = min([logging.INFO, loglevel])
logging.getLogger().setLevel(global_loglevel)
else:
logging.getLogger().setLevel(loglevel)
return loglevel