mirror of
https://github.com/ihabunek/twitch-dl
synced 2024-08-30 18:32:25 +00:00
Add --verbose flag for verbose logging
Don't log HTTP payloads unless --verbose flag is given. Always logging HTTP payloads tends to make the log unreadable.
This commit is contained in:
parent
a808b7d8ec
commit
07efac1ae7
@ -80,11 +80,12 @@ def validate_rate(_ctx: click.Context, _param: click.Parameter, value: str) -> O
|
|||||||
|
|
||||||
|
|
||||||
@click.group(context_settings=CONTEXT)
|
@click.group(context_settings=CONTEXT)
|
||||||
@click.option("--debug/--no-debug", default=False, help="Log debug info to stderr")
|
@click.option("--debug/--no-debug", default=False, help="Enable debug logging to stderr")
|
||||||
|
@click.option("--verbose/--no-verbose", default=False, help="More verbose debug logging")
|
||||||
@click.option("--color/--no-color", default=sys.stdout.isatty(), help="Use ANSI color in output")
|
@click.option("--color/--no-color", default=sys.stdout.isatty(), help="Use ANSI color in output")
|
||||||
@click.version_option(package_name="twitch-dl")
|
@click.version_option(package_name="twitch-dl")
|
||||||
@click.pass_context
|
@click.pass_context
|
||||||
def cli(ctx: click.Context, color: bool, debug: bool):
|
def cli(ctx: click.Context, color: bool, debug: bool, verbose: bool):
|
||||||
"""twitch-dl - twitch.tv downloader
|
"""twitch-dl - twitch.tv downloader
|
||||||
|
|
||||||
https://twitch-dl.bezdomni.net/
|
https://twitch-dl.bezdomni.net/
|
||||||
@ -92,7 +93,7 @@ def cli(ctx: click.Context, color: bool, debug: bool):
|
|||||||
ctx.color = color
|
ctx.color = color
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG if verbose else logging.INFO)
|
||||||
logging.getLogger("httpx").setLevel(logging.WARN)
|
logging.getLogger("httpx").setLevel(logging.WARN)
|
||||||
logging.getLogger("httpcore").setLevel(logging.WARN)
|
logging.getLogger("httpcore").setLevel(logging.WARN)
|
||||||
|
|
||||||
|
@ -149,12 +149,16 @@ async def download_all(
|
|||||||
def download_file(url: str, target: Path, retries: int = RETRY_COUNT) -> None:
|
def download_file(url: str, target: Path, retries: int = RETRY_COUNT) -> None:
|
||||||
"""Download URL to given target path with retries"""
|
"""Download URL to given target path with retries"""
|
||||||
error_message = ""
|
error_message = ""
|
||||||
for _ in range(retries):
|
for r in range(retries):
|
||||||
try:
|
try:
|
||||||
|
retry_info = f" (retry {r})" if r > 0 else ""
|
||||||
|
logger.info(f"Downloading {url} to {target}{retry_info}")
|
||||||
return _do_download_file(url, target)
|
return _do_download_file(url, target)
|
||||||
except httpx.HTTPStatusError as ex:
|
except httpx.HTTPStatusError as ex:
|
||||||
|
logger.error(ex)
|
||||||
error_message = f"Server responded with HTTP {ex.response.status_code}"
|
error_message = f"Server responded with HTTP {ex.response.status_code}"
|
||||||
except httpx.RequestError as ex:
|
except httpx.RequestError as ex:
|
||||||
|
logger.error(ex)
|
||||||
error_message = str(ex)
|
error_message = str(ex)
|
||||||
|
|
||||||
raise ConsoleError(f"Failed downloading after {retries} attempts: {error_message}")
|
raise ConsoleError(f"Failed downloading after {retries} attempts: {error_message}")
|
||||||
|
@ -22,6 +22,7 @@ from twitchdl.entities import (
|
|||||||
VideosType,
|
VideosType,
|
||||||
)
|
)
|
||||||
from twitchdl.exceptions import ConsoleError
|
from twitchdl.exceptions import ConsoleError
|
||||||
|
from twitchdl.utils import format_size
|
||||||
|
|
||||||
|
|
||||||
class GQLError(click.ClickException):
|
class GQLError(click.ClickException):
|
||||||
@ -78,15 +79,16 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
def log_request(request: httpx.Request):
|
def log_request(request: httpx.Request):
|
||||||
logger.debug(f"--> {request.method} {request.url}")
|
logger.info(f"--> {request.method} {request.url}")
|
||||||
if request.content:
|
if request.content:
|
||||||
logger.debug(f"--> {request.content}")
|
logger.debug(f"--> {request.content}")
|
||||||
|
|
||||||
|
|
||||||
def log_response(response: httpx.Response, duration: float):
|
def log_response(response: httpx.Response, duration_seconds: float):
|
||||||
request = response.request
|
request = response.request
|
||||||
duration_ms = int(1000 * duration)
|
duration = f"{int(1000 * duration_seconds)}ms"
|
||||||
logger.debug(f"<-- {request.method} {request.url} HTTP {response.status_code} {duration_ms}ms")
|
size = format_size(len(response.content))
|
||||||
|
logger.info(f"<-- {request.method} {request.url} HTTP {response.status_code} {duration} {size}")
|
||||||
if response.content:
|
if response.content:
|
||||||
logger.debug(f"<-- {response.content}")
|
logger.debug(f"<-- {response.content}")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user