capture logs to file, #130

pull/150/head
AlUlkesh 2023-04-11 16:47:44 +02:00
parent 79c028e47d
commit f7c6ee41e1
3 changed files with 15 additions and 3 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ path_recorder.txt
__pycache__ __pycache__
*.json *.json
*.sqlite3 *.sqlite3
*.log

View File

@ -484,7 +484,7 @@ function image_browser_start() {
} }
}) })
const debug_level_option = gradioApp().getElementById("image_browser_debug_level_option").querySelector("textarea").value const debug_level_option = gradioApp().getElementById("image_browser_debug_level_option").querySelector("textarea").value
if (debug_level_option == 'javascript' && !image_browser_debug) { if ((debug_level_option == 'javascript' || debug_level_option == 'capture') && !image_browser_debug) {
image_browser_hijack_console_log() image_browser_hijack_console_log()
} }
} }

View File

@ -72,6 +72,7 @@ np = "negative_prompt: "
openoutpaint = False openoutpaint = False
controlnet = False controlnet = False
js_dummy_return = None js_dummy_return = None
log_file = os.path.join(scripts.basedir(), "image_browser.log")
def check_image_browser_active_tabs(): def check_image_browser_active_tabs():
# Check if Maintenance tab has been added to settings in addition to as a mandatory tab. If so, remove. # Check if Maintenance tab has been added to settings in addition to as a mandatory tab. If so, remove.
@ -132,7 +133,7 @@ class ImageBrowserTab():
tabs_list = [ImageBrowserTab(tab) for tab in tabs_list] tabs_list = [ImageBrowserTab(tab) for tab in tabs_list]
debug_level_types = ["none", "warning log", "debug log", "javascript log"] #, "capture logs for saving"] debug_level_types = ["none", "warning log", "debug log", "javascript log", "capture logs to file"]
debug_levels_list = [] debug_levels_list = []
for i in range(len(debug_level_types)): for i in range(len(debug_level_types)):
@ -159,6 +160,7 @@ level_value = 0
if hasattr(opts, "image_browser_debug_level"): if hasattr(opts, "image_browser_debug_level"):
warning_level_value, (warning_level, warning_level_text) = debug_levels(arg_level="warning") warning_level_value, (warning_level, warning_level_text) = debug_levels(arg_level="warning")
debug_level_value, (debug_level, debug_level_text) = debug_levels(arg_level="debug") debug_level_value, (debug_level, debug_level_text) = debug_levels(arg_level="debug")
capture_level_value, (capture_level, capture_level_text) = debug_levels(arg_level="capture")
level_value, (level, level_text) = debug_levels(arg_text=opts.image_browser_debug_level) level_value, (level, level_text) = debug_levels(arg_text=opts.image_browser_debug_level)
if level_value >= debug_level_value: if level_value >= debug_level_value:
logger_mode = logging.DEBUG logger_mode = logging.DEBUG
@ -172,6 +174,15 @@ console_handler.setLevel(logger_mode)
formatter = logging.Formatter(f'%(asctime)s image_browser.py: %(message)s', datefmt='%Y-%m-%d-%H:%M:%S') formatter = logging.Formatter(f'%(asctime)s image_browser.py: %(message)s', datefmt='%Y-%m-%d-%H:%M:%S')
console_handler.setFormatter(formatter) console_handler.setFormatter(formatter)
logger.addHandler(console_handler) logger.addHandler(console_handler)
if level_value >= capture_level_value:
try:
os.unlink(log_file)
except FileNotFoundError:
pass
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logger_mode)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.warning(f"debug_level: {level_value}") logger.warning(f"debug_level: {level_value}")
# Debug logging # Debug logging
if logger.isEnabledFor(logging.DEBUG): if logger.isEnabledFor(logging.DEBUG):
@ -273,7 +284,7 @@ def tab_select():
return path_recorder, gr.update(choices=path_recorder_unformatted) return path_recorder, gr.update(choices=path_recorder_unformatted)
def js_logs_output(js_log): def js_logs_output(js_log):
print(js_log) logger.debug(js_log)
return js_log return js_log
def reduplicative_file_move(src, dst): def reduplicative_file_move(src, dst):