Files
jarvis-models/main.py
2025-02-03 15:50:56 +08:00

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