🔧 chore(__main__.py): update Typer configuration to treat no arguments as help to improve usability
🔧 chore(__main__.py): update docstring for run() function to improve clarity 🔧 chore(__main__.py): update docstring for superuser() function to improve clarity 🔧 chore(__main__.py): update migration() function to default to test mode 🔧 chore(manager.py): remove unnecessary logging of database URL in run_migrations() function 🔧 chore(manager.py): add missing import statement for logger in check_celery_availability() function 🔧 chore(manager.py): update configure() function to be called in check_celery_availability() function 🔧 chore(logger.py): update configure() function to use environment variable for log level if available 🔧 chore(logger.py): update configure() function to use default log file location if not provided
This commit is contained in:
parent
7d6f7f1e5e
commit
0b535c54f5
4 changed files with 59 additions and 23 deletions
|
|
@ -2,12 +2,34 @@ from typing import Optional
|
|||
from loguru import logger
|
||||
from pathlib import Path
|
||||
from rich.logging import RichHandler
|
||||
import os
|
||||
import orjson
|
||||
import appdirs
|
||||
|
||||
|
||||
def configure(log_level: str = "DEBUG", log_file: Optional[Path] = None):
|
||||
log_format = "<green>{time:HH:mm:ss}</green> - <level>{level: <8}</level> - <level>{message}</level>"
|
||||
def serialize(record):
|
||||
subset = {
|
||||
"timestamp": record["time"].timestamp(),
|
||||
"message": record["message"],
|
||||
"level": record["level"].name,
|
||||
"module": record["module"],
|
||||
}
|
||||
return orjson.dumps(subset)
|
||||
|
||||
|
||||
def patching(record):
|
||||
record["extra"]["serialized"] = serialize(record)
|
||||
|
||||
|
||||
def configure(log_level: str = "INFO", log_file: Optional[Path] = None):
|
||||
if os.getenv("LANGFLOW_LOG_LEVEL"):
|
||||
log_level = os.getenv("LANGFLOW_LOG_LEVEL")
|
||||
# Human-readable
|
||||
log_format = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> - <level>{level: <8}</level> - {module} - <level>{message}</level>"
|
||||
|
||||
# log_format = log_format_dev if log_level.upper() == "DEBUG" else log_format_prod
|
||||
logger.remove() # Remove default handlers
|
||||
|
||||
logger.patch(patching)
|
||||
# Configure loguru to use RichHandler
|
||||
logger.configure(
|
||||
handlers=[
|
||||
|
|
@ -19,17 +41,21 @@ def configure(log_level: str = "DEBUG", log_file: Optional[Path] = None):
|
|||
]
|
||||
)
|
||||
|
||||
if log_file:
|
||||
log_file = Path(log_file)
|
||||
log_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
if not log_file:
|
||||
cache_dir = Path(appdirs.user_cache_dir("langflow"))
|
||||
log_file = cache_dir / "langflow.log"
|
||||
|
||||
logger.add(
|
||||
sink=str(log_file),
|
||||
level=log_level.upper(),
|
||||
format=log_format,
|
||||
rotation="10 MB", # Log rotation based on file size
|
||||
)
|
||||
log_file = Path(log_file)
|
||||
log_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
logger.info(f"Logger set up with log level: {log_level}")
|
||||
logger.add(
|
||||
sink=str(log_file),
|
||||
level=log_level.upper(),
|
||||
format=log_format,
|
||||
rotation="10 MB", # Log rotation based on file size
|
||||
serialize=True,
|
||||
)
|
||||
|
||||
logger.debug(f"Logger set up with log level: {log_level}")
|
||||
if log_file:
|
||||
logger.info(f"Log file: {log_file}")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue