Send a message to a Telegram chat the moment a log entry matches your conditions.
An alert watches your incoming log stream and fires a notification whenever an entry matches all of its conditions. Each alert can target one or more delivery channels — Telegram, email, Slack, or a custom webhook. Alerts evaluate every log entry as it arrives, so the notification reaches you in seconds, not minutes.
Telegram is well suited as an alert channel because messages arrive instantly on all your devices, you can use personal direct messages during development and a shared team group for production, and the BunnyLogs bot requires no token management on your side — the connection is established through a one-time authorisation flow in Settings.
| Condition | How it matches |
|---|---|
| Logspace | Restrict to a specific logspace, or leave blank to match entries from any logspace you own. |
| Level | Exact match — e.g. ERROR fires only on error-level entries; WARNING fires only on warnings. |
| Program contains | Case-insensitive substring match on the program field. Enter payments to match any program name containing that word. |
| Message contains | Case-insensitive substring match on the message field. Useful for catching specific error strings or keywords. |
All specified conditions must match simultaneously — they are combined with AND logic.
An alert with level ERROR and message contains database only fires when
both are true at the same time.
BunnyLogs sends a plain-text message in this format:
🔴 ERROR · payments
Stripe webhook signature validation failed
— My Production App · 14:32:07
The level emoji helps you scan messages at a glance: 🔴 ERROR, 🟡 WARNING, 🔵 INFO, ⚫ DEBUG. The program name appears after the level, followed by the full message text, then the logspace name and the timestamp of the original log entry.
ERROR entry across all logspaces — a lightweight on-call pager.message contains database, so connection failures get eyes on them immediately.program contains cron and level=WARNING — catches silent cron failures without polling.
A single alert can deliver to more than one channel. For example, you might send all ERROR
entries to both a Telegram group and a Slack channel, so different team members catch them through
whichever tool they use. Add each channel as a separate delivery target when creating or editing the alert.
BunnyLogs attempts to deliver each alert notification once. Failures (network errors, Telegram API errors) are logged in the Alert Log with the full error response, so you can investigate and re-test if needed.
The Telegram Bot API imposes a rate limit of roughly 30 messages per second to a single chat and 1 message per second to a group. For high-frequency log streams, consider adding a Message contains condition to filter to the specific events you care about, rather than alerting on every entry.
ERROR
entries, or use Message contains to match only a specific string.
You can also create multiple alerts with different conditions targeting different Telegram chats.