diff --git a/src/python_response_time/core/logging.py b/src/python_response_time/core/logging.py
index bc5bd24..62a0656 100644
--- a/src/python_response_time/core/logging.py
+++ b/src/python_response_time/core/logging.py
@@ -4,13 +4,6 @@
from loguru import logger
-log_format = (
- "{time:YYYY-MM-DD HH:mm:ss.SSS} | "
- "{level: <8} | "
- "{name}:{function}:{line} - "
- "{message}"
-)
-
def setup_logger(level: str = "INFO"):
"""Configure and return a Loguru logger instance.
@@ -27,7 +20,7 @@ def setup_logger(level: str = "INFO"):
if level.upper() == "SILENT":
logger.add(
"app.log",
- format=log_format,
+ serialize=True,
level="ERROR",
rotation="1 MB",
retention="10 days",
@@ -36,7 +29,7 @@ def setup_logger(level: str = "INFO"):
else:
logger.add(
sys.stdout,
- format=log_format,
+ serialize=True,
level=level,
backtrace=True,
diagnose=True,
@@ -44,7 +37,7 @@ def setup_logger(level: str = "INFO"):
)
logger.add(
"app.log",
- format=log_format,
+ serialize=True,
level=level,
rotation="1 MB",
retention="10 days",
diff --git a/src/python_response_time/main.py b/src/python_response_time/main.py
index 30e247a..8058b82 100644
--- a/src/python_response_time/main.py
+++ b/src/python_response_time/main.py
@@ -3,47 +3,46 @@
import time
import requests
-from loguru import logger
+from rich.console import Console
from python_response_time.core import app_settings, setup_logger
-setup_logger(app_settings.LOG_LEVEL)
+console = Console()
def run_app():
- """Run a simple HTTP benchmark against the configured target URL."""
- logger.info(f"Target URL: {app_settings.TARGET_URL}")
- logger.info(f"Number of Requests: {app_settings.NUM_REQUESTS}")
- logger.info(f"Concurrency: {app_settings.CONCURRENCY}")
- logger.info(f"Timeout: {app_settings.TIMEOUT} seconds")
- logger.info(f"Request Delay: {app_settings.REQUEST_DELAY} seconds")
- logger.info(f"SSL Verify: {app_settings.VERIFY_SSL}")
+ """Run HTTP benchmark and display results via Rich."""
+ logger = setup_logger(app_settings.LOG_LEVEL)
+ console.print("[bold cyan]HTTP Benchmark Starting...[/bold cyan]")
+ console.print(f"Target: {app_settings.TARGET_URL}")
+ console.print(f"Requests: {app_settings.NUM_REQUESTS}")
+ console.print(f"Concurrency: {app_settings.CONCURRENCY}")
+ console.print(f"Timeout: {app_settings.TIMEOUT}s")
+ console.print(f"Delay: {app_settings.REQUEST_DELAY}s")
+ console.print(f"SSL Verify: {app_settings.VERIFY_SSL}\n")
session = requests.Session()
- logger.info("Starting HTTP benchmark...")
+ console.print("[bold green]Running benchmark...[/bold green]\n")
for i in range(app_settings.NUM_REQUESTS):
- start_time = time.time()
-
+ start_time = time.perf_counter()
try:
response = session.get(
str(app_settings.TARGET_URL),
timeout=app_settings.TIMEOUT,
verify=app_settings.VERIFY_SSL,
)
- response.raise_for_status()
-
- elapsed_time_ms = (time.time() - start_time) * 1000
+ elapsed_ms = (time.perf_counter() - start_time) * 1000
logger.info(
- f"Request {i + 1}: {response.status_code} - {elapsed_time_ms:.2f} ms"
+ f"Request {i + 1}: {response.status_code} in {elapsed_ms:.2f} ms"
)
except requests.exceptions.SSLError as e:
- logger.error(f"Request {i + 1} SSL error: {e}")
+ console.print(f"[red]Request {i + 1} SSL error: {e}[/red]")
except requests.RequestException as e:
- logger.error(f"Request {i + 1} failed: {e}")
+ console.print(f"[red]Request {i + 1} failed: {e}[/red]")
finally:
if app_settings.REQUEST_DELAY > 0: