first commit
Some checks failed
Build And Push / publish (push) Failing after 3m15s

This commit is contained in:
2025-09-24 04:11:55 +03:00
commit 967bb8d936
45 changed files with 2651 additions and 0 deletions

67
src/core/log.py Normal file
View File

@ -0,0 +1,67 @@
import logging
from typing import Any
from logging_loki import LokiHandler as Loki # type: ignore
from core.config import settings
class LokiHandler(Loki):
def __init__(self):
if not settings.LOKI_URL:
msg = 'LOKI_URL is not set'
raise ValueError(msg)
super().__init__( # type: ignore
settings.LOKI_URL,
tags={
'application': settings.APP_NAME,
'version': str(settings.VERSION),
},
version='1',
)
class Config:
def __init__(self):
self.version = 1
self.disable_existing_loggers = False
self.handlers = self._get_handlers()
self.loggers = self._get_loggers()
@staticmethod
def _get_handlers():
handlers: dict[str, Any] = {
'console': {
'class': 'logging.StreamHandler',
'level': logging.INFO,
'stream': 'ext://sys.stderr',
}
}
if settings.LOKI_URL:
handlers['loki'] = {'class': LokiHandler}
return handlers
def _get_loggers(self):
loggers = {
'': {
'level': logging.INFO,
'handlers': list(self.handlers.keys()),
'propagate': False,
},
}
return loggers
def render(self):
return {
'version': self.version,
'disable_existing_loggers': self.disable_existing_loggers,
'handlers': self.handlers,
'loggers': self.loggers,
}
config = Config().render()