Skip to content

Discord

DiscordHandler sends log entries to a Discord channel via webhook. Uses the Python standard library (urllib.request) - no extra dependencies required.

Installation

This integration requires the aiohttp package.

bash
uv add logly[discord]
bash
pip install "logly[discord]"
bash
uv add aiohttp
bash
pip install aiohttp

Missing Dependency

If aiohttp is not installed, you'll see:

ModuleNotFoundError: No module named 'aiohttp'

Usage

python
from logly import logger
from logly.integrations.discord import DiscordHandler

handler = DiscordHandler(
    "https://discord.com/api/webhooks/...",
    level="WARNING",
)
logger.add(handler, level="WARNING")

Constructor Args

ArgumentTypeDefaultDescription
webhook_urlstr""Discord webhook URL
timeoutfloat10.0HTTP request timeout in seconds
usernamestr | NoneNoneOverride webhook username
avatar_urlstr | NoneNoneOverride webhook avatar URL

Tips

  • Use level="WARNING" or higher to avoid flooding your Discord channel.
  • Create a dedicated webhook per environment (dev, staging, production).

Full Example

python
from logly import logger
from logly.integrations.discord import DiscordHandler

handler = DiscordHandler(
    webhook_url="https://discord.com/api/webhooks/123/abc...",
    timeout=15.0,
    username="Production Alerts",
)
logger.add(handler, level="ERROR")

logger.critical("Service is down", service="api-gateway")

Released under the MIT License.