mirror of
https://github.com/tiqi-group/pydase_service_base.git
synced 2025-06-16 00:37:12 +02:00
Adding logging module
This commit is contained in:
40
icon_service_base/logging/LogBroadcastMessagePublisher.py
Normal file
40
icon_service_base/logging/LogBroadcastMessagePublisher.py
Normal file
@ -0,0 +1,40 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from kombu import Connection, Exchange, Producer # type: ignore
|
||||
from loguru import Record, Message
|
||||
|
||||
from settings import amqp_settings
|
||||
|
||||
from .LogBroadcastMessage import LogBroadcastMessage
|
||||
|
||||
|
||||
class LogBroadcastMessagePublisher:
|
||||
def __init__(self, originator: str) -> None:
|
||||
self._originator = originator
|
||||
self._exchange = Exchange("logging", type="topic", durable=True)
|
||||
|
||||
self._connection = Connection(amqp_settings.broker_dsn)
|
||||
self._channel = self._connection.channel()
|
||||
bound_exchange = self._exchange(self._channel)
|
||||
bound_exchange.declare()
|
||||
self._producer = Producer(channel=self._channel, exchange=self._exchange)
|
||||
|
||||
def send_msg(self, loguru_msg: Message):
|
||||
loguru_dict: Record = loguru_msg.record
|
||||
|
||||
icon_msg = LogBroadcastMessage(
|
||||
originator=self._originator,
|
||||
level=loguru_dict["level"].name,
|
||||
message=loguru_dict["message"],
|
||||
package=loguru_dict["name"],
|
||||
line_number=loguru_dict["line"],
|
||||
function=loguru_dict["function"],
|
||||
timestamp=loguru_dict["time"],
|
||||
)
|
||||
|
||||
self._producer.publish( # type: ignore
|
||||
icon_msg.json(),
|
||||
exchange=self._exchange,
|
||||
expiration=amqp_settings.message_expiration_default_s,
|
||||
routing_key=icon_msg.routing_key,
|
||||
)
|
Reference in New Issue
Block a user