Files
Wu Clan 5e438c685d Refactor the backend architecture (#299)
* 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
2024-03-22 18:16:15 +08:00

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()