added file logging and automatically load config/cookies.txt if non is given via ytdlp.json file.

This commit is contained in:
ArabCoders 2025-02-27 00:37:59 +03:00
parent ccd5b0607e
commit e0058d969f
2 changed files with 21 additions and 0 deletions

View file

@ -99,6 +99,7 @@ Certain values can be set via environment variables, using the `-e` parameter on
* __YTP_BASIC_MODE__: Whether to run WebUI in basic mode. Defaults to `false`. In basic mode, A minimal UI will be shown, the majority of the features will be disabled.
* __YTP_DEFAULT_PRESET__: The default preset to use for the download. Defaults to `default`.
* __YTP_INSTANCE_TITLE__: The title of the instance. Defaults to empty string.
* __YTP_FILE_LOGGING__: Whether to log to file. Defaults to `false`.
## Running behind a reverse proxy

View file

@ -5,6 +5,7 @@ import os
import re
import sys
import time
from logging.handlers import RotatingFileHandler
from multiprocessing.managers import SyncManager
from pathlib import Path
@ -139,6 +140,9 @@ class Config:
instance_title: str | None = None
"The title of the instance."
file_logging: bool = False
"Enable file logging."
_manual_vars: tuple = (
"temp_path",
"config_path",
@ -179,6 +183,7 @@ class Config:
"ui_update_title",
"pip_ignore_updates",
"basic_mode",
"file_logging",
)
"The variables that are booleans."
@ -359,6 +364,12 @@ class Config:
LOG.info("keep archive option is enabled.")
self.ytdl_options["download_archive"] = os.path.join(self.config_path, "archive.log")
cookiesFile: str = os.path.join(self.config_path, "cookies.txt")
if os.path.exists(cookiesFile) and self.ytdl_options.get("cookiefile", None) is None:
LOG.info(f"Using cookies from '{cookiesFile}' as default.")
self.ytdl_options["cookiefile"] = cookiesFile
if self.temp_keep:
LOG.info("Keep temp files option is enabled.")
@ -368,6 +379,15 @@ class Config:
if self.basic_mode:
LOG.info("The frontend is running in basic mode.")
if self.file_logging:
handler = RotatingFileHandler(
os.path.join(self.config_path, "app.log"), maxBytes=1 * 1024 * 1024, backupCount=3
)
handler.setLevel(logging.ERROR)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logging.getLogger().addHandler(handler)
self.started = time.time()
def _get_attributes(self) -> dict: