Skip to content
Snippets Groups Projects

Restructure log location

Merged Ashwin Kumar Karnad requested to merge restructure-log-location into main
2 files
+ 38
30
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 20
17
@@ -32,17 +32,19 @@ for given system architecture and MPSD software stack version.\n
@@ -32,17 +32,19 @@ for given system architecture and MPSD software stack version.\n
The toolchains
The toolchains
are built using the bash script spack_setup.sh, and the results are logged. """
are built using the bash script spack_setup.sh, and the results are logged. """
call_date_iso = datetime.datetime.now().replace(microsecond=0).isoformat()
call_date_iso = (
 
datetime.datetime.now().replace(microsecond=0).isoformat().replace(":", "-")
 
)
config_vars = {
config_vars = {
# kept inside the mpsd_release folder
# kept inside the mpsd_release folder
"cmd_log_file": "install.log",
"cmd_log_file": "script_execution_summary.log",
# Placeholder installer log file name, placed at mpsd_microarch/logs
# Placeholder installer log file name, placed at mpsd_microarch/logs
"installer_log_template": Template(
"installer_log_template": Template(
"${mpsd_release}_${mpsd_microarch}_${date}_${action}.log"
"${mpsd_release}_${mpsd_microarch}_${date}_APEX_${action}.log"
),
),
# Placeholder build log file name, placed at mpsd_microarch/logs
# Placeholder build log file name, placed at mpsd_microarch/logs
"build_log_template": Template(
"build_log_template": Template(
"${mpsd_release}_${mpsd_microarch}_${date}_${toolchain}_${action}.log"
"${mpsd_release}_${mpsd_microarch}_${date}_BUILD_${toolchain}_${action}.log"
),
),
"metadata_tag_open": "!<meta>",
"metadata_tag_open": "!<meta>",
"metadata_tag_close": "</meta>!",
"metadata_tag_close": "</meta>!",
@@ -151,8 +153,8 @@ def read_metadata_from_logfile(logfile: Union[str, Path]) -> dict:
@@ -151,8 +153,8 @@ def read_metadata_from_logfile(logfile: Union[str, Path]) -> dict:
}
}
def get_installer_log_file(mpsd_release: str, cmd: str, script_dir: str) -> str:
def get_installer_log_file_path(mpsd_release: str, cmd: str, script_dir: str) -> str:
"""Get installer log file name."""
"""Get installer log file path."""
# Get machine configs
# Get machine configs
os.environ.get("MPSD_OS", "UNKNOWN_OS")
os.environ.get("MPSD_OS", "UNKNOWN_OS")
mpsd_microarch = get_native_microarchitecture()
mpsd_microarch = get_native_microarchitecture()
@@ -173,7 +175,7 @@ def get_installer_log_file(mpsd_release: str, cmd: str, script_dir: str) -> str:
@@ -173,7 +175,7 @@ def get_installer_log_file(mpsd_release: str, cmd: str, script_dir: str) -> str:
return installer_log_file
return installer_log_file
def set_up_logging(loglevel="warning", filename=None):
def set_up_logging(loglevel="warning", file_path=None):
"""Set up logging.
"""Set up logging.
This function sets up the logging configuration for the script.
This function sets up the logging configuration for the script.
@@ -188,7 +190,7 @@ def set_up_logging(loglevel="warning", filename=None):
@@ -188,7 +190,7 @@ def set_up_logging(loglevel="warning", filename=None):
- warning (default): only print statements if something is unexpected
- warning (default): only print statements if something is unexpected
- info (show more detailed progress)
- info (show more detailed progress)
- debug (show very detailed output)
- debug (show very detailed output)
filename : str
file_path : str
- filename to save logging messages into
- filename to save logging messages into
If loglevel is 'debug', save line numbers in log messages.
If loglevel is 'debug', save line numbers in log messages.
@@ -278,8 +280,8 @@ def set_up_logging(loglevel="warning", filename=None):
@@ -278,8 +280,8 @@ def set_up_logging(loglevel="warning", filename=None):
logger.handlers = [shell_handler]
logger.handlers = [shell_handler]
# if filename provided, write log messages to that file, too.
# if filename provided, write log messages to that file, too.
if filename:
if file_path:
file_handler = logging.FileHandler(filename)
file_handler = logging.FileHandler(file_path)
# if we have a file, we write all information in there.
# if we have a file, we write all information in there.
# We could change the level, for example restrict to only DEBUG and above with
# We could change the level, for example restrict to only DEBUG and above with
# file_handler.setLevel(logging.DEBUG)
# file_handler.setLevel(logging.DEBUG)
@@ -303,9 +305,9 @@ def set_up_logging(loglevel="warning", filename=None):
@@ -303,9 +305,9 @@ def set_up_logging(loglevel="warning", filename=None):
print_log.addHandler(ch)
print_log.addHandler(ch)
# if filename provided, write output of print_log to that file, too
# if filename provided, write output of print_log to that file, too
if filename:
if file_path:
# create, format and add file handler
# create, format and add file handler
fh = logging.FileHandler(filename)
fh = logging.FileHandler(file_path)
fh.setFormatter(formatter)
fh.setFormatter(formatter)
print_log.addHandler(fh)
print_log.addHandler(fh)
@@ -314,7 +316,7 @@ def set_up_logging(loglevel="warning", filename=None):
@@ -314,7 +316,7 @@ def set_up_logging(loglevel="warning", filename=None):
#
#
logging.debug(
logging.debug(
f"Logging has been setup, loglevel={loglevel.upper()} "
f"Logging has been setup, loglevel={loglevel.upper()} "
+ f"{filename=} {rich_available=}"
+ f"{file_path=} {rich_available=}"
)
)
@@ -788,7 +790,7 @@ def install_environment(
@@ -788,7 +790,7 @@ def install_environment(
mpsd_release, mpsd_microarch, "install", toolchain=toolchain
mpsd_release, mpsd_microarch, "install", toolchain=toolchain
)
)
build_log_folder = release_base_dir / "logs"
build_log_folder = release_base_dir / "logs"
build_log_file = build_log_folder / build_log_file_name
build_log_path = build_log_folder / build_log_file_name
# if logs folder dosent exist, create it
# if logs folder dosent exist, create it
if not os.path.exists(build_log_folder):
if not os.path.exists(build_log_folder):
os.makedirs(build_log_folder)
os.makedirs(build_log_folder)
@@ -799,7 +801,7 @@ def install_environment(
@@ -799,7 +801,7 @@ def install_environment(
setup_log_cmd(
setup_log_cmd(
mpsd_release,
mpsd_release,
script_dir,
script_dir,
msg=f"installing {toolchain} and logging at {build_log_file}",
msg=f"installing {toolchain} and logging at {build_log_path}",
)
)
setup_log_cmd(
setup_log_cmd(
mpsd_release,
mpsd_release,
@@ -811,7 +813,7 @@ def install_environment(
@@ -811,7 +813,7 @@ def install_environment(
)
)
run(
run(
f"bash {spack_setup_script} {' '.join(install_flags)} {toolchain} 2>&1 "
f"bash {spack_setup_script} {' '.join(install_flags)} {toolchain} 2>&1 "
f"| tee -a {build_log_file} ",
f"| tee -a {build_log_path} ",
shell=True,
shell=True,
check=True,
check=True,
)
)
@@ -916,7 +918,8 @@ def main():
@@ -916,7 +918,8 @@ def main():
script_dir = Path(os.path.dirname(os.path.realpath(__file__)))
script_dir = Path(os.path.dirname(os.path.realpath(__file__)))
set_up_logging(
set_up_logging(
args.loglevel, get_installer_log_file(args.release, args.action, script_dir)
args.loglevel,
 
get_installer_log_file_path(args.release, args.action, script_dir),
)
)
# Check the command and run related function
# Check the command and run related function
Loading