mirror of
https://github.com/BoardWare-Genius/jarvis-models.git
synced 2025-12-13 16:53:24 +00:00
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
import uvicorn
|
|
import logging
|
|
from injector import Injector,inject
|
|
from src.configuration import LogConf, singleton
|
|
from src.loki_logger_handler.loki_logger_handler import LokiLoggerHandler
|
|
import argparse
|
|
import yaml
|
|
|
|
with open(".env.yaml", "r") as file:
|
|
config = yaml.safe_load(file)
|
|
log_handler_confg = config["log"]["handlers"]
|
|
log_handlers = []
|
|
for handler_config in log_handler_confg:
|
|
if handler_config["type"] == "loki":
|
|
log_handlers.append(LokiLoggerHandler(
|
|
url=handler_config["url"],
|
|
additional_headers={"X-Odin-Auth": handler_config["x-odin-auth"]},
|
|
labels=handler_config["labels"],
|
|
label_keys={},
|
|
timeout=10,
|
|
enable_structured_loki_metadata=True,
|
|
loki_metadata={"service": "user-service", "version": "1.0.0"},
|
|
insecure_ssl_verify=False
|
|
))
|
|
|
|
logging.basicConfig(level=logging.DEBUG, handlers=log_handlers)
|
|
logging.info("logging init finish")
|
|
|
|
@singleton
|
|
class Main():
|
|
|
|
@inject
|
|
def __init__(self, logConf: LogConf) -> None:
|
|
logging.basicConfig(level=logConf.level,filename=logConf.filename,format="%(asctime)s %(levelname)s %(message)s")
|
|
|
|
def run(self):
|
|
logger = logging.getLogger(__name__)
|
|
logger.info("jarvis-models start", extra={"version": "0.0.1"})
|
|
uvicorn.run("server:app", host="0.0.0.0", port=8000, log_level="info",reload = True)
|
|
|
|
if __name__ == "__main__":
|
|
injector = Injector()
|
|
main = injector.get(Main)
|
|
main.run() |