Skip to content

Commit 4b548e7

Browse files
committed
Improve logging logic and change license
1 parent e9d36ec commit 4b548e7

File tree

4 files changed

+40
-27
lines changed

4 files changed

+40
-27
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ requires-python = ">=3.10"
77
authors = [{ name = "Ken Liao" }]
88
maintainers = [{ name = "Ken Liao", email = "[email protected]" }]
99
keywords = ["rabbitmq", "mcp", "llm", "automation"]
10-
license = { text = "MIT" }
10+
license = { text = "Apache-2.0" }
1111
classifiers = [
1212
"Development Status :: 4 - Beta",
1313
"Intended Audience :: Developers",

src/mcp_server_rabbitmq/logger.py

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,43 @@
11
import datetime
2+
from enum import IntEnum
23

3-
# Replace this with more powerful logging library
4+
class LOG_LEVEL(IntEnum):
5+
DEBUG = 0
6+
INFO = 1
7+
WARNING = 2
8+
ERROR = 3
9+
10+
# TODO: see if there are better libraries available
411
class Logger:
5-
def __init__(self, log_file_path):
12+
def __init__(self, log_file_path: str, log_level: LOG_LEVEL = LOG_LEVEL.WARNING):
613
self.log_file_path = log_file_path
14+
self.log_level = log_level
715

8-
def log(self, msg):
16+
def debug(self, msg):
17+
if not self.__should_skip_logging(LOG_LEVEL.DEBUG):
18+
self.__write_log(self.__post_process_log_entry(msg, LOG_LEVEL.DEBUG))
19+
20+
def info(self, msg):
21+
if not self.__should_skip_logging(LOG_LEVEL.INFO):
22+
self.__write_log(self.__post_process_log_entry(msg, LOG_LEVEL.INFO))
23+
24+
def warning(self, msg):
25+
if not self.__should_skip_logging(LOG_LEVEL.WARNING):
26+
self.__write_log(self.__post_process_log_entry(msg, LOG_LEVEL.WARNING))
27+
28+
def error(self, msg):
29+
if not self.__should_skip_logging(LOG_LEVEL.ERROR):
30+
self.__write_log(self.__post_process_log_entry(msg, LOG_LEVEL.ERROR))
31+
32+
def __post_process_log_entry(self, msg: str, log_level: LOG_LEVEL) -> str:
933
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
34+
return f"[{log_level}] {timestamp} - {msg}\n"
35+
36+
def __write_log(self, msg):
1037
with open(self.log_file_path, "a") as f:
11-
f.write(f"{timestamp} - {msg}\n")
38+
f.write(msg)
39+
# TODO: look for optimization opportunity here
40+
f.flush()
41+
42+
def __should_skip_logging(self, log_level: LOG_LEVEL) -> bool:
43+
return int(log_level) < int(self.log_level)

src/mcp_server_rabbitmq/server.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import pika
88
import ssl
99
from .models import Enqueue
10-
from .logger import Logger
10+
from .logger import Logger, LOG_LEVEL
1111

1212

13-
async def serve(rabbitmq_host: str, port: int, username: str, password: str, use_tls: bool) -> None:
13+
async def serve(rabbitmq_host: str, port: int, username: str, password: str, use_tls: bool, logging_level: LOG_LEVEL = LOG_LEVEL.WARNING) -> None:
1414
# Setup server and logger
1515
server = Server("mcp-rabbitmq")
1616
# Make logger another option to pass
@@ -50,7 +50,7 @@ async def call_tool(
5050
channel.basic_publish(exchange="", routing_key=queue, body=message)
5151
return [TextContent(type="text", text=str("suceeded"))]
5252
except Exception as e:
53-
logger.log(f"[ERROR] {e}")
53+
logger.error(f"[ERROR] {e}")
5454
return [TextContent(type="text", text=str("failed"))]
5555
raise ValueError(f"Tool not found: {name}")
5656

src/mcp_server_rabbitmq/test_remote_connection.py

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)