forked from Hay1tsme/artemis
Centralized logging
Allows us to extend the logging infrastructure, e.g. by adding Loki/Discord webhooks to the mix.
This commit is contained in:
@ -1,10 +1,9 @@
|
||||
import logging, coloredlogs
|
||||
import logging
|
||||
from typing import Any, Dict, List, Union, Optional
|
||||
from starlette.requests import Request
|
||||
from starlette.routing import Route, Mount
|
||||
from starlette.responses import Response, PlainTextResponse, RedirectResponse
|
||||
from starlette.applications import Starlette
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
import jinja2
|
||||
import bcrypt
|
||||
import re
|
||||
@ -18,7 +17,7 @@ from enum import Enum
|
||||
from datetime import datetime, timezone
|
||||
from os import path, environ, mkdir, W_OK, access
|
||||
|
||||
from core import CoreConfig, Utils
|
||||
from core import CoreConfig, Utils, logger
|
||||
from core.data import Data
|
||||
|
||||
class PermissionOffset(Enum):
|
||||
@ -53,33 +52,10 @@ class UserSession():
|
||||
class FrontendServlet():
|
||||
def __init__(self, cfg: CoreConfig, config_dir: str) -> None:
|
||||
self.config = cfg
|
||||
log_fmt_str = "[%(asctime)s] Frontend | %(levelname)s | %(message)s"
|
||||
log_fmt = logging.Formatter(log_fmt_str)
|
||||
self.environment = jinja2.Environment(loader=jinja2.FileSystemLoader("."))
|
||||
self.game_list: Dict[str, Dict[str, Any]] = {}
|
||||
self.sn_cvt: Dict[str, str] = {}
|
||||
|
||||
self.logger = logging.getLogger("frontend")
|
||||
if not hasattr(self.logger, "inited"):
|
||||
fileHandler = TimedRotatingFileHandler(
|
||||
"{0}/{1}.log".format(self.config.server.log_dir, "frontend"),
|
||||
when="d",
|
||||
backupCount=10,
|
||||
)
|
||||
fileHandler.setFormatter(log_fmt)
|
||||
|
||||
consoleHandler = logging.StreamHandler()
|
||||
consoleHandler.setFormatter(log_fmt)
|
||||
|
||||
self.logger.addHandler(fileHandler)
|
||||
self.logger.addHandler(consoleHandler)
|
||||
|
||||
self.logger.setLevel(cfg.frontend.loglevel)
|
||||
coloredlogs.install(
|
||||
level=cfg.frontend.loglevel, logger=self.logger, fmt=log_fmt_str
|
||||
)
|
||||
|
||||
self.logger.inited = True
|
||||
self.sn_cvt: Dict[str, str] = {}
|
||||
self.logger = logger.create_logger("Frontend", cfg, cfg.frontend.loglevel)
|
||||
|
||||
games = Utils.get_all_titles()
|
||||
for game_dir, game_mod in games.items():
|
||||
@ -174,7 +150,7 @@ class FE_Base():
|
||||
def __init__(self, cfg: CoreConfig, environment: jinja2.Environment) -> None:
|
||||
self.core_config = cfg
|
||||
self.data = Data(cfg)
|
||||
self.logger = logging.getLogger("frontend")
|
||||
self.logger = logger.create_logger("Frontend", cfg, cfg.frontend.loglevel)
|
||||
self.environment = environment
|
||||
self.nav_name = "index"
|
||||
|
||||
|
Reference in New Issue
Block a user