From f915fd2265ed236c2f810cefbd4e26a17d1e77c6 Mon Sep 17 00:00:00 2001 From: Forest Belton <65484+forestbelton@users.noreply.github.com> Date: Mon, 21 Jun 2021 23:21:44 -0400 Subject: [PATCH] Make logging more consistent --- paircd/client.py | 2 +- paircd/handle.py | 3 ++- paircd/handler/join.py | 11 +++++++---- paircd/handler/nick.py | 5 ++--- paircd/handler/privmsg.py | 5 ++++- paircd/handler/user.py | 6 ++++-- paircd/log.py | 7 +++++++ 7 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 paircd/log.py diff --git a/paircd/client.py b/paircd/client.py index 70a15eb..b8536eb 100644 --- a/paircd/client.py +++ b/paircd/client.py @@ -1,6 +1,6 @@ from asyncio import StreamReader, StreamWriter, Queue from dataclasses import dataclass, field -from typing import Any, Set +from typing import Set @dataclass diff --git a/paircd/handle.py b/paircd/handle.py index a4ffbde..6431c5d 100644 --- a/paircd/handle.py +++ b/paircd/handle.py @@ -2,6 +2,7 @@ import logging from typing import Any, Dict from paircd.client import Client +from paircd.log import log_client from paircd.message import Message from paircd.server import Server @@ -16,6 +17,6 @@ def register_cmd_handler(cmd: str, argc: int, handler) -> None: async def handle_cmd(server: Server, client: Client, msg: Message) -> None: if msg.cmd not in CMD_HANDLERS: - logging.warning(f"Unknown command: {msg.cmd}") + log_client(client, f"used unknown command {msg.cmd}", level=logging.WARN) return await CMD_HANDLERS[msg.cmd](server, client, msg) diff --git a/paircd/handler/join.py b/paircd/handler/join.py index 4e11a52..51386ee 100644 --- a/paircd/handler/join.py +++ b/paircd/handler/join.py @@ -3,23 +3,26 @@ import logging from paircd.channel import Channel from paircd.client import Client +from paircd.log import log_client from paircd.message import Message from paircd.server import Server async def handle_join(server: Server, client: Client, msg: Message) -> None: - channel_name = msg.args[0] if not client.registered: - raise RuntimeError("JOIN: not registered") + log_client(client, "join: not registered", level=logging.WARN) + return + channel_name = msg.args[0] if not channel_name.startswith("#"): - raise RuntimeError("invalid channel name") + log_client(client, "tried to join invalid channel", level=logging.WARN) + return channel = server.get_channel_by_name(channel_name) channel.add_client(client) client.channels.add(channel_name) - logging.info(f"{client.hostname} ({client.id()}) joined {channel_name}") + log_client(client, f"joined {channel_name}") await channel.msg_queue.put( Message(cmd="JOIN", args=[channel_name], prefix=client.id()).encode() diff --git a/paircd/handler/nick.py b/paircd/handler/nick.py index 851eec3..cfd4ed1 100644 --- a/paircd/handler/nick.py +++ b/paircd/handler/nick.py @@ -1,6 +1,5 @@ -import logging - from paircd.client import Client +from paircd.log import log_client from paircd.message import Message from paircd.server import Server @@ -17,4 +16,4 @@ async def handle_nick(server: Server, client: Client, msg: Message) -> None: if client.username and client.realname: client.registered = True - logging.info(f"{client.hostname} ({client.id()}) registered") + log_client(client, "registered") diff --git a/paircd/handler/privmsg.py b/paircd/handler/privmsg.py index bf40000..26375f7 100644 --- a/paircd/handler/privmsg.py +++ b/paircd/handler/privmsg.py @@ -1,3 +1,6 @@ +import logging + +from paircd.log import log_client from paircd.client import Client from paircd.message import Message from paircd.server import Server @@ -19,4 +22,4 @@ async def handle_privmsg(server: Server, client: Client, msg: Message) -> None: channel.msg_queue.put_nowait(msg) return - raise RuntimeError(f"Unknown recipient {recipient}") + log_client(client, "unknown recipient", level=logging.WARN) diff --git a/paircd/handler/user.py b/paircd/handler/user.py index 1debfc0..3080e6a 100644 --- a/paircd/handler/user.py +++ b/paircd/handler/user.py @@ -1,17 +1,19 @@ import logging from paircd.client import Client +from paircd.log import log_client from paircd.message import Message from paircd.server import Server async def handle_user(server: Server, client: Client, msg: Message) -> None: if client.registered: - raise RuntimeError("USER command issued after registration") + log_client(client, "USER issued after registration", level=logging.WARN) + return client.username = msg.args[0] client.realname = msg.args[3] if client.nickname: client.registered = True - logging.info(f"{client.hostname} ({client.id()}) registered") + log_client(client, "registered") diff --git a/paircd/log.py b/paircd/log.py new file mode 100644 index 0000000..57b2013 --- /dev/null +++ b/paircd/log.py @@ -0,0 +1,7 @@ +import logging + +from paircd.client import Client + + +def log_client(client: Client, msg: str, level: int = logging.INFO) -> None: + logging.log(level, f"{client.hostname} ({client.id()}) {msg}")