#17 - review log message, standartize format and add location info
This commit was merged in pull request #19.
This commit is contained in:
@@ -2,6 +2,7 @@ import logging
|
||||
import re
|
||||
from typing import Set
|
||||
|
||||
from amqp.adapter.logging_utils import logging_info
|
||||
from amqp.model.model import AMQRoute
|
||||
from amqp.router.utils import sanitize_as_rabbitmq_name
|
||||
|
||||
@@ -53,7 +54,7 @@ class RouteDatabase:
|
||||
|
||||
def find_route(self, domain: str, path: str) -> AMQRoute | None:
|
||||
routing_key = sanitize_as_rabbitmq_name(f"{domain}.{path}")
|
||||
logging.info(f" [DBG] findRoute key:{routing_key} in:{self.wrap_routes()}")
|
||||
logging_info(f"findRoute key:{routing_key} in:{self.wrap_routes()}")
|
||||
for route in self.routes:
|
||||
if self.matches(route.key, routing_key):
|
||||
return route
|
||||
|
||||
@@ -2,7 +2,7 @@ import logging
|
||||
from typing import Callable, List, Set
|
||||
|
||||
from amqp.adapter.amq_route_factory import AMQRouteFactory, NULL_ROUTE
|
||||
from amqp.adapter.logging_utils import logging_error
|
||||
from amqp.adapter.logging_utils import logging_error, logging_debug, logging_info
|
||||
from amqp.model.model import AMQRoute, DataMessage
|
||||
from amqp.router.route_database import RouteDatabase
|
||||
from amqp.router.utils import sanitize_as_rabbitmq_name
|
||||
@@ -37,7 +37,7 @@ class RouterBase:
|
||||
return ",".join(str(route) for route in self.own_routes)
|
||||
|
||||
def unwrap_route_list(self, route_string: str) -> List[AMQRoute]:
|
||||
logging.info(" [DBG] RouterMaster.unwrapRoutes, route(s): %s", route_string)
|
||||
logging_debug("RouterMaster.unwrapRoutes, route(s): %s", route_string)
|
||||
routes = [
|
||||
AMQRouteFactory.from_string(route_str)
|
||||
for route_str in route_string.split(",")
|
||||
@@ -56,11 +56,11 @@ class RouterBase:
|
||||
def add_routes(self, message: str) -> None:
|
||||
try:
|
||||
amq_route_list = self.unwrap_route_list(message)
|
||||
logging.info(
|
||||
logging_info(
|
||||
" [DBG] RouterMaster.addRoute [%d]: %s", len(amq_route_list), message
|
||||
)
|
||||
for route in amq_route_list:
|
||||
logging.info(" [*] RouterMaster.addRoute, adding route: %s", route)
|
||||
logging_info("RouterMaster.addRoute, adding route: %s", route)
|
||||
if not route.exchange and not route.queue and not route.key:
|
||||
logging_error(
|
||||
"Cannot setup AMQ Exchange for '%s', at least one of "
|
||||
@@ -87,11 +87,11 @@ class RouterBase:
|
||||
for route_str in message.split(",")
|
||||
]
|
||||
removed_count = sum(1 for route in to_remove if self.remove_route(route))
|
||||
logging.info(
|
||||
f" [*] RouterMaster.removeRoutes(): {message}, removed={removed_count}"
|
||||
logging_info(
|
||||
f"RouterMaster.removeRoutes(): {message}, removed={removed_count}"
|
||||
)
|
||||
except IOError as err:
|
||||
logging.info(f" [E] Can't remove route(s): {err}")
|
||||
logging_error(f"Can't remove route(s): {err}")
|
||||
|
||||
def remove_route(self, route: AMQRoute) -> bool:
|
||||
is_route_removed = self.route_database.remove_route(route)
|
||||
|
||||
@@ -7,7 +7,12 @@ from aio_pika.abc import (
|
||||
AbstractIncomingMessage,
|
||||
)
|
||||
from amqp.adapter.amq_route_factory import AMQRouteFactory
|
||||
from amqp.adapter.logging_utils import logging_error
|
||||
from amqp.adapter.logging_utils import (
|
||||
logging_error,
|
||||
logging_info,
|
||||
logging_debug,
|
||||
logging_warning,
|
||||
)
|
||||
from amqp.config.amq_configuration import AMQConfiguration
|
||||
from amqp.model.model import ServiceMessage, AMQRoute
|
||||
from amqp.model.service_message_type import ServiceMessageType
|
||||
@@ -36,14 +41,14 @@ class RouterConsumer(RouterProducer):
|
||||
def __init__(self, configuration: AMQConfiguration):
|
||||
super().__init__(configuration)
|
||||
self.amqRouteFactory = AMQRouteFactory()
|
||||
logging.info(" [*] RouterConsumer.<init>")
|
||||
logging_info("RouterConsumer.<init>")
|
||||
|
||||
async def init_routing_paths_consumer(self, _channel: AbstractRobustChannel):
|
||||
"""
|
||||
* Initialize router according to Consumer mode.
|
||||
"""
|
||||
logging.info(
|
||||
" [*] RouterConsumer.initConsumerRouter, channel open: %s",
|
||||
logging_info(
|
||||
"RouterConsumer.initConsumerRouter, channel open: %s",
|
||||
self.is_open(_channel),
|
||||
)
|
||||
if self.is_open(_channel):
|
||||
@@ -64,7 +69,7 @@ class RouterConsumer(RouterProducer):
|
||||
_c_tag = await _queue.consume(
|
||||
callback=self.handle_routing_data_request_message, no_ack=False
|
||||
)
|
||||
logging.info(
|
||||
logging_info(
|
||||
" [%s] RouterConsumer listens for RouteDataRequests on: %s",
|
||||
_c_tag,
|
||||
_cm_request_queue,
|
||||
@@ -86,8 +91,8 @@ class RouterConsumer(RouterProducer):
|
||||
# some debug statements, TODO - remove for prod release
|
||||
delivery_tag = message.delivery_tag
|
||||
debug = "Delivery.Properties = " + message.properties.__str__()
|
||||
logging.info(
|
||||
" [DBG] ******[%s] (ROUTING_DATA_REQ) tag: %s, env: %s, props: %s",
|
||||
logging_debug(
|
||||
" ******[%s] (ROUTING_DATA_REQ) tag: %s, env: %s, props: %s",
|
||||
delivery_tag,
|
||||
message.consumer_tag,
|
||||
message.properties,
|
||||
@@ -100,8 +105,8 @@ class RouterConsumer(RouterProducer):
|
||||
message.body
|
||||
)
|
||||
route_mapping: str = self.wrap_own_routes()
|
||||
logging.info(
|
||||
" [DBG] ******[%s] (ROUTING_DATA_REQ) msg=%s, routeMap=[%s]",
|
||||
logging_debug(
|
||||
"******[%s] (ROUTING_DATA_REQ) msg=%s, routeMap=[%s]",
|
||||
delivery_tag,
|
||||
self.service_message_factory.to_string(cm_message),
|
||||
route_mapping,
|
||||
@@ -130,8 +135,10 @@ class RouterConsumer(RouterProducer):
|
||||
err,
|
||||
)
|
||||
else:
|
||||
logging.info(
|
||||
" [*] ******[%s] (ROUTING_DATA_REQ) [%s] Ignore request originated by ourselves."
|
||||
logging_info(
|
||||
"******[%s] (ROUTING_DATA_REQ) [%s] Ignore request originated by ourselves.",
|
||||
delivery_tag,
|
||||
str(message.body),
|
||||
)
|
||||
else:
|
||||
logging_error(
|
||||
@@ -155,10 +162,10 @@ class RouterConsumer(RouterProducer):
|
||||
serviceMessage, self.cm_response_exchange
|
||||
)
|
||||
self.add_own_route(route)
|
||||
logging.info(" [DBG] RouterConsumer registered Route: %s", route)
|
||||
logging_info("RouterConsumer registered Route: %s", route)
|
||||
else:
|
||||
logging.warning(
|
||||
" [W] RouterConsumer couldn't register route data: %s channel isn't open.",
|
||||
logging_warning(
|
||||
"RouterConsumer couldn't register route data: %s channel isn't open.",
|
||||
CM_RESPONSE_EXCHANGE,
|
||||
)
|
||||
except Exception as ioe:
|
||||
@@ -170,7 +177,7 @@ class RouterConsumer(RouterProducer):
|
||||
* :param route: route to remove
|
||||
* :return result of remove operation
|
||||
"""
|
||||
logging.info(" [DBG] RouterConsumer.removeRoute, route: %s", route.as_string())
|
||||
logging_info("RouterConsumer.removeRoute, route: %s", route.as_string())
|
||||
try:
|
||||
service_message: ServiceMessage = self.service_message_factory.of(
|
||||
ServiceMessageType.ROUTING_DATA_REMOVE, route.as_string(), ANY_RECIPIENT
|
||||
@@ -178,8 +185,8 @@ class RouterConsumer(RouterProducer):
|
||||
if not await self.publish_service_message(
|
||||
service_message, self.cm_response_exchange
|
||||
):
|
||||
logging.warning(
|
||||
" [W] RouterConsumer couldn't remove current route: %s, channel not open.",
|
||||
logging_warning(
|
||||
"RouterConsumer couldn't remove current route: %s, channel not open.",
|
||||
route,
|
||||
)
|
||||
|
||||
@@ -194,8 +201,8 @@ class RouterConsumer(RouterProducer):
|
||||
* Cleanup - de-register routes with master.
|
||||
"""
|
||||
routes: Set[AMQRoute] = self.get_routes()
|
||||
logging.info(
|
||||
" [DBG] RouterConsumer.cleanup() [%d]: %s", len(routes), self.wrap_routes()
|
||||
logging_info(
|
||||
"RouterConsumer.cleanup() [%d]: %s", len(routes), self.wrap_routes()
|
||||
)
|
||||
not_removed = sum(
|
||||
1
|
||||
@@ -203,7 +210,7 @@ class RouterConsumer(RouterProducer):
|
||||
if not r
|
||||
)
|
||||
if not_removed > 0:
|
||||
logging.info(
|
||||
" [W] %d route(s) not removed. self may lead to failed delivery on self route",
|
||||
logging_warning(
|
||||
"%d route(s) not removed. self may lead to failed delivery on self route",
|
||||
not_removed,
|
||||
)
|
||||
|
||||
@@ -19,7 +19,12 @@ from aio_pika.abc import (
|
||||
)
|
||||
from pika.exchange_type import ExchangeType
|
||||
|
||||
from amqp.adapter.logging_utils import logging_error
|
||||
from amqp.adapter.logging_utils import (
|
||||
logging_error,
|
||||
logging_info,
|
||||
logging_debug,
|
||||
logging_warning,
|
||||
)
|
||||
from amqp.adapter.service_message_factory import ServiceMessageFactory
|
||||
from amqp.config.amq_configuration import AMQConfiguration
|
||||
from amqp.model.model import ServiceMessage
|
||||
@@ -52,8 +57,8 @@ class RouterProducer(RouterBase):
|
||||
self.cm_request_exchange: AbstractRobustExchange | None = None
|
||||
self.cm_response_exchange: AbstractRobustExchange | None = None
|
||||
|
||||
logging.info(
|
||||
f" [*] RouterProducer.<init>: %s, route: %s",
|
||||
logging_info(
|
||||
f"RouterProducer.<init>: %s, route: %s",
|
||||
self.amq_configuration.amq_adapter.service_name,
|
||||
self.amq_configuration.amq_adapter.route_mapping,
|
||||
)
|
||||
@@ -68,8 +73,8 @@ class RouterProducer(RouterBase):
|
||||
"""
|
||||
|
||||
self.channel = channel
|
||||
logging.info(
|
||||
" [*] RouterProducer.initRoutingPaths, channel open: %s",
|
||||
logging_info(
|
||||
"RouterProducer.initRoutingPaths, channel open: %s",
|
||||
self.is_open(self.channel),
|
||||
)
|
||||
if self.is_open(self.channel):
|
||||
@@ -102,7 +107,7 @@ class RouterProducer(RouterBase):
|
||||
_c_tag = await _response_queue.consume(
|
||||
callback=self.handle_routing_data_message, no_ack=False
|
||||
)
|
||||
logging.info(
|
||||
logging_info(
|
||||
" [%s] Routing master listens for Route updates on %s",
|
||||
_c_tag,
|
||||
_cm_response_queue,
|
||||
@@ -120,25 +125,19 @@ class RouterProducer(RouterBase):
|
||||
* Handler for CLEVER_MICRO_RESPONSE queue messages. Used in Master mode to handle receipt of
|
||||
* routing data, invokes addRoute or removeRoute depending on the type of the message.
|
||||
"""
|
||||
logging.info(
|
||||
f" [x] Received {message.body}, m={message.message_id}, p={message.properties}"
|
||||
)
|
||||
"""
|
||||
logging.info(" [DBG] ******[%s] ROUTING_DATA %s >>> %s",
|
||||
delivery.getEnvelope().getDeliveryTag(),
|
||||
delivery.getEnvelope().toString(), str(delivery.getBody()))
|
||||
"""
|
||||
logging.info(
|
||||
" [%s] ACK message now so that it is not being redelivered",
|
||||
logging_info(
|
||||
f"[%s] Received ROUTING DATA: [%s], msgId=%s",
|
||||
message.delivery_tag,
|
||||
message.body,
|
||||
message.message_id,
|
||||
)
|
||||
await message.ack(multiple=False)
|
||||
cm_message: ServiceMessage = self.service_message_factory.from_bytes(
|
||||
message.body
|
||||
)
|
||||
# ignore the message if it comes from ourselves (even if from different instance)
|
||||
logging.info(
|
||||
" [DBG] ******[%s] ROUTING_DATA, msg=%s, routeMap=[%s] sn=%s, replyTo=%s",
|
||||
logging_debug(
|
||||
"******[%s] ROUTING_DATA, msg=%s, routeMap=[%s] sn=%s, replyTo=%s",
|
||||
message.delivery_tag,
|
||||
self.service_message_factory.to_string(cm_message),
|
||||
self.amq_configuration.amq_adapter.route_mapping,
|
||||
@@ -159,8 +158,8 @@ class RouterProducer(RouterBase):
|
||||
"""
|
||||
* Send a broadcast message prompting all listening adapters to reply with own routing data.
|
||||
"""
|
||||
logging.info(
|
||||
" [*] RouterProducer.requestRoutesFromAdapters, queue name: %s",
|
||||
logging_info(
|
||||
"RouterProducer.requestRoutesFromAdapters, queue name: %s",
|
||||
CM_REQUEST_EXCHANGE,
|
||||
)
|
||||
try:
|
||||
@@ -170,8 +169,8 @@ class RouterProducer(RouterBase):
|
||||
if not await self.publish_service_message(
|
||||
serviceMessage, self.cm_request_exchange
|
||||
):
|
||||
logging.warning(
|
||||
" [E] RouterProducer could not request route data: %s channel is not open.",
|
||||
logging_warning(
|
||||
"RouterProducer could not request route data: %s channel is not open.",
|
||||
CM_REQUEST_EXCHANGE,
|
||||
)
|
||||
|
||||
@@ -201,8 +200,8 @@ class RouterProducer(RouterBase):
|
||||
correlation_id=None,
|
||||
)
|
||||
await exchange.publish(message=pika_message, routing_key="")
|
||||
logging.info(
|
||||
" [x] Service Message Sent to %s, msg: %s",
|
||||
logging_info(
|
||||
"Service Message Published to %s, msg: %s",
|
||||
exchange.name,
|
||||
str(binary_content),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user