Use same log file for full AutoRepairs session
This commit is contained in:
parent
3b89f1eabc
commit
cafdf42a6d
2 changed files with 30 additions and 8 deletions
|
|
@ -40,7 +40,7 @@ def enable_debug_mode():
|
|||
|
||||
def format_log_path(
|
||||
log_dir=None, log_name=None, timestamp=False,
|
||||
kit=False, tool=False):
|
||||
kit=False, tool=False, append=False):
|
||||
"""Format path based on args passed, returns pathlib.Path obj."""
|
||||
log_path = pathlib.Path(
|
||||
f'{log_dir if log_dir else DEFAULT_LOG_DIR}/'
|
||||
|
|
@ -54,6 +54,7 @@ def format_log_path(
|
|||
log_path = log_path.resolve()
|
||||
|
||||
# Avoid clobbering
|
||||
if not append:
|
||||
log_path = non_clobber_path(log_path)
|
||||
|
||||
# Done
|
||||
|
|
@ -121,10 +122,10 @@ def start(config=None):
|
|||
|
||||
|
||||
def update_log_path(
|
||||
dest_dir=None, dest_name=None, keep_history=True, timestamp=True):
|
||||
dest_dir=None, dest_name=None, keep_history=True, timestamp=True, append=False):
|
||||
"""Moves current log file to new path and updates the root logger."""
|
||||
root_logger = logging.getLogger()
|
||||
new_path = format_log_path(dest_dir, dest_name, timestamp=timestamp)
|
||||
new_path = format_log_path(dest_dir, dest_name, timestamp=timestamp, append=append)
|
||||
old_handler = None
|
||||
old_path = get_root_logger_path()
|
||||
os.makedirs(new_path.parent, exist_ok=True)
|
||||
|
|
@ -147,10 +148,15 @@ def update_log_path(
|
|||
new_handler = logging.FileHandler(new_path, mode='a')
|
||||
new_handler.setFormatter(old_handler.formatter)
|
||||
|
||||
# Remove old_handler and log if empty
|
||||
# Remove old_handler
|
||||
root_logger.removeHandler(old_handler)
|
||||
old_handler.close()
|
||||
|
||||
# Delete orignal log if needed
|
||||
if keep_history:
|
||||
remove_empty_log(old_path)
|
||||
else:
|
||||
old_path.unlink()
|
||||
|
||||
# Add new handler
|
||||
root_logger.addHandler(new_handler)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,11 @@ from wk.io import (
|
|||
rename_item,
|
||||
)
|
||||
from wk.kit.tools import (download_tool, get_tool_path, run_tool)
|
||||
from wk.log import format_log_path, update_log_path
|
||||
from wk.log import (
|
||||
format_log_path,
|
||||
get_root_logger_path,
|
||||
update_log_path,
|
||||
)
|
||||
from wk.os.win import (
|
||||
OS_VERSION,
|
||||
get_timezone,
|
||||
|
|
@ -277,6 +281,7 @@ def init_run(options):
|
|||
def init_session(options):
|
||||
"""Initialize Auto Repairs session."""
|
||||
reg_set_value('HKCU', AUTO_REPAIR_KEY, 'SessionStarted', 1, 'DWORD')
|
||||
reg_set_value('HKCU', AUTO_REPAIR_KEY, 'LogName', get_root_logger_path().stem, 'SZ')
|
||||
|
||||
# Check timezone
|
||||
zone = get_timezone()
|
||||
|
|
@ -347,7 +352,7 @@ def load_settings(menus):
|
|||
|
||||
def run_auto_repairs(base_menus):
|
||||
"""Run Auto Repairs."""
|
||||
update_log_path(dest_name='Auto Repairs', timestamp=True)
|
||||
set_log_path()
|
||||
title = f'{KIT_NAME_FULL}: Auto Repairs'
|
||||
clear_screen()
|
||||
set_title(title)
|
||||
|
|
@ -489,6 +494,17 @@ def save_settings(group, name, result=None, **kwargs):
|
|||
reg_set_value('HKCU', key_path, value_name, data, data_type)
|
||||
|
||||
|
||||
def set_log_path():
|
||||
"""Set log name using defaults or the saved registry value."""
|
||||
try:
|
||||
log_path = reg_read_value('HKCU', AUTO_REPAIR_KEY, 'LogName')
|
||||
except FileNotFoundError:
|
||||
# Ignore and use default values
|
||||
update_log_path(dest_name='Auto Repairs', timestamp=True)
|
||||
else:
|
||||
update_log_path(dest_name=log_path, keep_history=False, timestamp=False, append=True)
|
||||
|
||||
|
||||
def show_main_menu(base_menus, menus):
|
||||
"""Show main menu and handle actions."""
|
||||
while True:
|
||||
|
|
|
|||
Loading…
Reference in a new issue