mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2025-08-15 03:52:54 +08:00

* define the basic architecture * Update script and deployment file locations * Update the route registration * Fix CI download dependencies * Updated ruff to 0.3.3 * Update app subdirectory naming * Update the model import * fix pre-commit pdm lock * Update the service directory naming * Add CRUD method documents * Fix the issue of circular import * Update the README document * Update the SQL statement for create tables * Update docker scripts and documentation * Fix docker scripts * Update the backend README.md * Add the security folder and move the redis client * Update the configuration item * Fix environment configuration reads * Update the default configuration * Updated README description * Updated the user registration API * Fix test cases * Update the celery configuration * Update and fix celery configuration * Updated the celery structure * Update celery tasks and api * Add celery flower * Update the import style * Update contributors
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from loguru import logger
|
|
|
|
from backend.core import path_conf
|
|
from backend.core.conf import settings
|
|
|
|
if TYPE_CHECKING:
|
|
import loguru
|
|
|
|
|
|
class Logger:
|
|
def __init__(self):
|
|
self.log_path = path_conf.LOG_DIR
|
|
|
|
def log(self) -> loguru.Logger:
|
|
if not os.path.exists(self.log_path):
|
|
os.mkdir(self.log_path)
|
|
|
|
# 日志文件
|
|
log_stdout_file = os.path.join(self.log_path, settings.LOG_STDOUT_FILENAME)
|
|
log_stderr_file = os.path.join(self.log_path, settings.LOG_STDERR_FILENAME)
|
|
|
|
# loguru 日志: https://loguru.readthedocs.io/en/stable/api/logger.html#loguru._logger.Logger.add
|
|
log_config = dict(rotation='10 MB', retention='15 days', compression='tar.gz', enqueue=True)
|
|
# stdout
|
|
logger.add(
|
|
log_stdout_file,
|
|
level='INFO',
|
|
filter=lambda record: record['level'].name == 'INFO' or record['level'].no <= 25,
|
|
**log_config,
|
|
backtrace=False,
|
|
diagnose=False,
|
|
)
|
|
# stderr
|
|
logger.add(
|
|
log_stderr_file,
|
|
level='ERROR',
|
|
filter=lambda record: record['level'].name == 'ERROR' or record['level'].no >= 30,
|
|
**log_config,
|
|
backtrace=True,
|
|
diagnose=True,
|
|
)
|
|
|
|
return logger
|
|
|
|
|
|
log = Logger().log()
|