You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
|
1 month ago
|
import sys
|
||
|
|
from pathlib import Path
|
||
|
|
from loguru import logger
|
||
|
|
|
||
|
|
from config import settings
|
||
|
|
|
||
|
|
|
||
|
|
def setup_logging():
|
||
|
|
log_dir = Path(__file__).parent / "logs"
|
||
|
|
log_dir.mkdir(exist_ok=True)
|
||
|
|
|
||
|
|
logger.remove()
|
||
|
|
|
||
|
|
log_format = (
|
||
|
|
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
|
||
|
|
"<level>{level: <8}</level> | "
|
||
|
|
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
|
||
|
|
"<level>{message}</level>"
|
||
|
|
)
|
||
|
|
|
||
|
|
logger.add(
|
||
|
|
sys.stdout,
|
||
|
|
format=log_format,
|
||
|
|
level=settings.LOG_LEVEL,
|
||
|
|
colorize=True,
|
||
|
|
)
|
||
|
|
|
||
|
|
logger.add(
|
||
|
|
log_dir / "app_{time:YYYY-MM-DD}.log",
|
||
|
|
format=log_format,
|
||
|
|
level=settings.LOG_LEVEL,
|
||
|
|
rotation="00:00",
|
||
|
|
retention="7 days",
|
||
|
|
compression="zip",
|
||
|
|
)
|
||
|
|
|
||
|
|
logger.add(
|
||
|
|
log_dir / "error_{time:YYYY-MM-DD}.log",
|
||
|
|
format=log_format,
|
||
|
|
level="ERROR",
|
||
|
|
rotation="00:00",
|
||
|
|
retention="30 days",
|
||
|
|
compression="zip",
|
||
|
|
)
|
||
|
|
|
||
|
|
logger.info(f"Logging setup complete, level: {settings.LOG_LEVEL}")
|