added "logging"

This commit is contained in:
2025-07-17 10:13:49 +02:00
parent 8d2d272185
commit 5a7076c117

View File

@@ -8,6 +8,17 @@ import json
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
class Tee:
def __init__(self, *files):
self.files = files
def write(self, obj):
for f in self.files:
f.write(obj)
f.flush()
def flush(self):
for f in self.files:
f.flush()
REQUIRED_TOOLS_MAP = { REQUIRED_TOOLS_MAP = {
"ffmpeg": "extra/ffmpeg", "ffmpeg": "extra/ffmpeg",
"ffprobe": "extra/ffmpeg", # Part of ffmpeg package "ffprobe": "extra/ffmpeg", # Part of ffmpeg package
@@ -20,6 +31,7 @@ REQUIRED_TOOLS_MAP = {
} }
DIR_COMPLETED = Path("completed") DIR_COMPLETED = Path("completed")
DIR_ORIGINAL = Path("original") DIR_ORIGINAL = Path("original")
DIR_LOGS = Path("conv_logs")
REMUX_CODECS = {"aac", "opus"} # Using a set for efficient lookups REMUX_CODECS = {"aac", "opus"} # Using a set for efficient lookups
# Removed CONVERT_CODECS, now all non-remux codecs will be converted # Removed CONVERT_CODECS, now all non-remux codecs will be converted
@@ -151,6 +163,7 @@ def main(no_downmix=False):
check_tools() check_tools()
DIR_COMPLETED.mkdir(exist_ok=True, parents=True) DIR_COMPLETED.mkdir(exist_ok=True, parents=True)
DIR_ORIGINAL.mkdir(exist_ok=True, parents=True) DIR_ORIGINAL.mkdir(exist_ok=True, parents=True)
DIR_LOGS.mkdir(exist_ok=True, parents=True)
current_dir = Path(".") current_dir = Path(".")
@@ -165,6 +178,16 @@ def main(no_downmix=False):
break break
file_path = files_to_process[0] file_path = files_to_process[0]
# Setup logging
log_file_path = DIR_LOGS / f"{file_path.name}.log"
log_file = open(log_file_path, 'w', encoding='utf-8')
original_stdout = sys.stdout
original_stderr = sys.stderr
sys.stdout = Tee(original_stdout, log_file)
sys.stderr = Tee(original_stderr, log_file)
try:
print("-" * shutil.get_terminal_size(fallback=(80, 24)).columns) print("-" * shutil.get_terminal_size(fallback=(80, 24)).columns)
print(f"Starting full processing for: {file_path.name}") print(f"Starting full processing for: {file_path.name}")
date = datetime.now() date = datetime.now()
@@ -309,6 +332,11 @@ def main(no_downmix=False):
runtime = datetime.now() - date runtime = datetime.now() - date
runtime_str = str(runtime).split('.')[0] # Format to remove milliseconds runtime_str = str(runtime).split('.')[0] # Format to remove milliseconds
print(f"Total runtime for {file_path.name}: {runtime_str}") print(f"Total runtime for {file_path.name}: {runtime_str}")
finally:
# Restore stdout/stderr and close log file
sys.stdout = original_stdout
sys.stderr = original_stderr
log_file.close()
if __name__ == "__main__": if __name__ == "__main__":
import argparse import argparse