mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-06-03 05:35:02 -04:00
* add dependency injection for get_repositories * convert events api to controller * update generic typing * add abstract controllers * update test naming * migrate admin services to controllers * add additional admin route tests * remove print * add public shared dependencies * add types * fix typo * add static variables for recipe json keys * add coverage gutters config * update controller routers * add generic success response * add category/tag/tool tests * add token refresh test * add coverage utilities * covert comments to controller * add todo * add helper properties * delete old service * update test notes * add unit test for pretty_stats * remove dead code from post_webhooks * update group routes to use controllers * add additional group test coverage * abstract common permission checks * convert ingredient parser to controller * update recipe crud to use controller * remove dead-code * add class lifespan tracker for debugging * convert bulk export to controller * migrate tools router to controller * update recipe share to controller * move customer router to _base * ignore prints in flake8 * convert units and foods to new controllers * migrate user routes to controllers * centralize error handling * fix invalid ref * reorder fields * update routers to share common handling * update tests * remove prints * fix cookbooks delete * fix cookbook get * add controller for mealplanner * cover report routes to controller * remove __future__ imports * remove dead code * remove all base_http children and remove dead code
83 lines
1.9 KiB
Python
83 lines
1.9 KiB
Python
import logging
|
|
import sys
|
|
from dataclasses import dataclass
|
|
from functools import lru_cache
|
|
|
|
from mealie.core.config import determine_data_dir
|
|
|
|
DATA_DIR = determine_data_dir()
|
|
|
|
from .config import get_app_settings
|
|
|
|
settings = get_app_settings()
|
|
|
|
LOGGER_FILE = DATA_DIR.joinpath("mealie.log")
|
|
DATE_FORMAT = "%d-%b-%y %H:%M:%S"
|
|
LOGGER_FORMAT = "%(levelname)s: %(asctime)s \t%(message)s"
|
|
|
|
|
|
@dataclass
|
|
class LoggerConfig:
|
|
handlers: list
|
|
format: str
|
|
date_format: str
|
|
logger_file: str
|
|
level: str = logging.INFO
|
|
|
|
|
|
@lru_cache
|
|
def get_logger_config():
|
|
if not settings.PRODUCTION:
|
|
from rich.logging import RichHandler
|
|
|
|
return LoggerConfig(
|
|
handlers=[RichHandler(rich_tracebacks=True, tracebacks_show_locals=True)],
|
|
format=None,
|
|
date_format=None,
|
|
logger_file=None,
|
|
)
|
|
|
|
output_file_handler = logging.FileHandler(LOGGER_FILE)
|
|
handler_format = logging.Formatter(LOGGER_FORMAT, datefmt=DATE_FORMAT)
|
|
output_file_handler.setFormatter(handler_format)
|
|
|
|
# Stdout
|
|
stdout_handler = logging.StreamHandler(sys.stdout)
|
|
stdout_handler.setFormatter(handler_format)
|
|
|
|
return LoggerConfig(
|
|
handlers=[output_file_handler, stdout_handler],
|
|
format="%(levelname)s: %(asctime)s \t%(message)s",
|
|
date_format="%d-%b-%y %H:%M:%S",
|
|
logger_file=LOGGER_FILE,
|
|
)
|
|
|
|
|
|
logger_config = get_logger_config()
|
|
|
|
logging.basicConfig(
|
|
level=logger_config.level,
|
|
format=logger_config.format,
|
|
datefmt=logger_config.date_format,
|
|
handlers=logger_config.handlers,
|
|
)
|
|
|
|
|
|
def logger_init() -> logging.Logger:
|
|
"""Returns the Root Loggin Object for Mealie"""
|
|
return logging.getLogger("mealie")
|
|
|
|
|
|
root_logger = logger_init()
|
|
root_logger.info("Testing Root Logger")
|
|
|
|
|
|
def get_logger(module=None) -> logging.Logger:
|
|
"""Returns a child logger for mealie"""
|
|
global root_logger
|
|
|
|
if module is None:
|
|
return root_logger
|
|
|
|
return root_logger.getChild(module)
|