Logging
One central page to send every module's logs to Discord — delivered as webhooks styled with your server's Branding. Moderation, security, community and server-event logs all live here, and every action Discord records in your server's audit log is covered — with the person who did it, the reason they gave, and exactly what changed.
Configure all logging from Dashboard → Logging. There is no more pasting webhook URLs or hunting for log settings on separate feature pages — pick a channel and the bot creates and manages the webhook for you.
Master switch
One toggle turns all logging on or off. When it's off, nothing is logged anywhere.
Per-event routing
Send each event to its own channel, or leave it on the default channel. Toggle any event individually.
Branded webhooks
Every log carries your server's name, logo, accent colour and footer from the Branding page.
Quick Setup
One click creates a private logging category, makes the channels and wires up every webhook.
Who & why
Logs are merged with your server's audit log, so each one names the person responsible and the reason they gave.
Full coverage
77 event types across 13 categories — everything Discord writes to the audit log and the events it records nowhere, including action types added in future.
A few layers decide where a log lands: the master switch, the default channel, a dedicated moderation channel, and per-event routing.
-
1Turn on the master switch
Open Dashboard → Logging and enable logging. This is the kill-switch for everything below it.
-
2Pick a default channel
Choose where logs go when an event has no channel of its own. The bot finds or creates a managed
Server Logswebhook in that channel automatically. -
3Set a moderation channel (optional)
Choose a separate channel for moderation logs — mod actions (warn/kick/ban/unban/timeout/other), automod & anti-spam, and every security event — so they stay out of your normal server log. Any moderation event without its own channel goes here; leave it empty to send moderation logs to the default channel.
-
4Route individual events (optional)
Expand any group and give a specific event its own channel — for example send
Banto#bansandAutomodto#automod. Anything left on its default falls back to the moderation channel (for moderation events) or the default channel (for everything else).
A log that says "a channel was deleted" is only half the story. Azra reads your server's audit log and merges it with what it saw happen, so one log entry tells you the whole thing.
Every log carries as much as Discord will give us:
Performed by
The member or bot responsible, as a mention plus their ID.
Reason
The reason typed into Discord's "reason" box, or given to an Azra command.
Before → after
Exactly what changed. Permission changes show only what was added and removed, not two long lists.
Audit entry ID
The action type and entry ID, so you can cross-check the log against Discord's own audit log.
One action, one log
Discord tells the bot about most actions twice — once as it happens, and again as an audit-log entry a moment later. Azra waits briefly, merges the two, and posts a single entry. You will not see a "channel deleted" log followed by a "someone deleted a channel" log.
The same goes for Azra's own actions: when a moderator runs /mod ban, that ban is logged once by the command — not a second time from the audit log. Bans placed by other bots or by hand in the Discord client are logged normally.
Each event is read from whichever source Discord actually records
Discord's audit log does not cover everything that happens in a server, so Azra does not pretend it does. Every event is taken from the source that genuinely holds it:
- Audit log — for the actions Discord officially records there: bans, kicks, timeouts, channel/role/server edits, permission overwrites, webhooks, invites, integrations, emoji, stickers, pins and bulk deletes. This is what supplies who did it and any reason they gave.
- Direct detection — for the things Discord records nowhere: members joining and leaving, message edits, a member deleting their own message, and every voice event including server mute and deafen. Azra watches these as they happen rather than looking for an audit entry that will never exist.
The practical effect is that no event is missing because it was looked for in the wrong place, and no log invents a moderator it cannot actually name. Where Discord records no one, the log says so.
It also means logging keeps working when Azra cannot read your audit log at all: the half it saw directly is still posted, marked audit log unavailable, instead of the event vanishing along with the permission.
Built for what Discord adds next
If Discord introduces a brand-new audit-log action, Azra still logs it under Unrecognised audit-log actions with the raw entry attached, rather than silently ignoring it until the bot is updated. Nothing that happens in your server goes unrecorded.
Every event you can log, in the same 13 categories they appear in on the dashboard. Events marked off by default only log once you switch them on. The first four categories are moderation scope — they use the moderation channel when one is set. The dashboard is the authority on the exact list: it only ever offers events your server can actually produce, so a category whose module is switched off simply is not shown.
Moderation
| Event | Logged when… |
|---|---|
| Warn | /mod warn is used. |
| Kick | /mod kick, the Quick Kick context menu, or someone kicks a member from the Discord client. |
| Ban | /mod ban, /mod tempban, Quick Ban, an anti-nuke ban, or a ban placed by hand or by another bot. |
| Unban | /mod unban, a tempban auto-expiring, or an unban from the Discord client. |
| Timeout / Timeout Removed | A member is timed out or has their timeout cleared — by command or from the Discord client. |
| Other actions | Lock, unlock, slowmode, purge, lockdown and temp-role changes. |
| Member Prune | An inactivity prune runs — including how many members it removed and the inactivity window. |
Voice
| Event | Logged when… | Default |
|---|---|---|
| Member Joined Voice | A member connects to a voice or stage channel. | Off by default |
| Member Left Voice | A member disconnects from voice on their own. | Off by default |
| Member Switched / Was Moved | A member changes voice channel — either by choice, or dragged by a moderator. When a moderator did it, the log names them. | On |
| Member Disconnected | A moderator forcibly disconnects a member from voice. | On |
| Voice Mute / Unmute | A member is server-muted or unmuted. | On |
| Voice Deafen / Undeafen | A member is server-deafened or undeafened. | On |
Automod & Spam
| Event | Logged when… |
|---|---|
| Automod Actions | A message is removed for links, blocked words, caps, mentions, invites or AI moderation. |
| Anti-Spam | A user trips the message-burst rate limit. |
| AutoMod Rule Changed | Someone creates, edits or deletes an AutoMod rule in Server Settings — a different thing from a rule firing. Azra's own Azra • … rules are excluded. |
Auto-Moderation also publishes one event per rule group — keywords, links, images, invites, threads, reactions, usernames and the rest — so you can send link enforcement somewhere different from keyword enforcement. They appear on the dashboard under Automod Events whenever Auto Moderation is switched on, and any you have not configured individually follow whatever their parent event is set to.
Security
| Event | Logged when… |
|---|---|
| Anti-Nuke | A mass-deletion / mass-ban attack is detected and stopped. |
| Raid Protection | A burst of joins trips the raid threshold or a lockdown starts. |
| Bot Detection | A joining account is flagged by the suspicious-account scorer. |
| Copy-Paste Guard | The same message is spammed across multiple channels. |
| Captcha | Captcha verification events (e.g. a failed role assignment). |
| Verification | The account-age gate kicks a too-new account. |
Members
| Event | Logged when… | Default |
|---|---|---|
| Member Joined | A member joins the server. | On |
| Member Left | A member leaves or is removed (their roles are listed). | On |
| Nickname / Role Changes | A member's nickname or roles change — with who changed them. A nickname and a role edit made together stay one log. | Off by default |
Channels
| Event | Logged when… |
|---|---|
| Channel Created | A channel or category is created. |
| Channel Updated | A channel's name, topic, age restriction, slowmode, bitrate, user limit, region, category, position or forum settings change. |
| Channel Deleted | A channel or category is deleted. |
| Permission Overwrites Changed | A channel's permissions change for a role or member — added, edited or removed. One log per affected role/member, showing exactly which permissions were allowed or denied. |
Threads & Stages
| Event | Logged when… |
|---|---|
| Thread Created | A thread or forum post is created (forum posts are labelled as such). |
| Thread Updated | A thread is renamed, archived, locked, has its tags changed, or its auto-archive/slowmode edited. |
| Thread Deleted | A thread or forum post is deleted. |
| Stage Instance | A stage goes live, has its topic or privacy changed, or ends. |
Roles
| Event | Logged when… |
|---|---|
| Role Created | A role is created. |
| Role Updated | A role's permissions, colour, icon, name, position, hoist or mentionable setting changes. Permission changes are shown as a diff — only what was granted and revoked. |
| Role Deleted | A role is deleted. |
Server Settings
| Event | Logged when… |
|---|---|
| Server Settings Changed | Any server-level change: name, icon, banner, invite & discovery splash, vanity URL, AFK channel and timeout, system / rules / public-updates / safety-alerts channels, preferred locale, verification level, explicit content filter, default notifications, NSFW level, 2FA requirement and community features. |
| Emoji Changed | An emoji is added, renamed or removed. |
| Sticker Changed | A sticker is added, edited or removed. |
| Soundboard Sound Changed | A soundboard sound is added, edited or removed. |
| Onboarding Changed | The server's onboarding flow or any of its prompts is created, edited or removed. |
| Server Home Changed | Server Home settings are created or updated. |
| Creator Monetization | A monetization request is created or its terms accepted. |
| Slash Command Permissions | Someone changes which roles or members can use a bot's slash commands. |
Integrations
| Event | Logged when… |
|---|---|
| Webhook Changed | A webhook is created, edited or deleted. Azra's own managed log webhooks are excluded. |
| Invite Changed | An invite is created, edited or deleted — with its channel, creator, max uses and expiry. An invite that simply expires or runs out of uses is logged too, as no-one revoked it. |
| Integration Changed | An integration is added, edited or removed — including a bot being added to the server. |
Community
| Event | Logged when… |
|---|---|
| Giveaways | Giveaway lifecycle events — created, ended, rerolled, cancelled, winners drawn. |
| Tickets | A support ticket is opened, claimed or closed (uses this central destination unless the department overrides it). |
| Scheduled Event | A server event is created, edited (including starting, finishing or being cancelled) or deleted. |
Messages
| Event | Logged when… | Default |
|---|---|---|
| Message Deleted | A non-bot message is deleted. If a moderator deleted it, the log names them; if the author deleted their own, it says so. | Off by default |
| Message Edited | A non-bot message's content changes. | Off by default |
| Messages Bulk Deleted | Messages are purged in bulk — the channel, how many were removed, and whose messages they were. A purge run through Azra's own /mod purge is logged once by the command instead. | On |
| Message Pinned / Unpinned | A message is pinned or unpinned in a channel. | Off by default |
Forward Compatibility
| Event | Logged when… |
|---|---|
| Unrecognised audit-log actions | Discord records an action type Azra doesn't have a dedicated format for yet — logged with the raw entry attached so nothing is missed while support catches up. |
Logs aren't plain bot messages — they're delivered through managed webhooks so they wear your server's identity.
Every log embed picks up the settings from your Branding page:
- Webhook name & avatar — your brand name and logo.
- Accent colour — the embed's left bar.
- Footer — your footer text and icon.
Set nothing and logs still arrive as Azra, with the bot's own name and profile
picture — not as an anonymous Server Logs webhook with a blank avatar. Branding
overrides that wherever you fill it in, so the two work together: anything you leave empty falls
back to the bot's identity.
Server Logs webhook or creates one — you never paste a URL. Without that permission the bot can't create the webhook and the log is skipped.
The "set and forget" button. It creates a private logging category at the bottom of your server, makes the channels, and wires every webhook to match the events you currently have enabled.
When you click Run Quick Setup you choose a layout:
| Layout | What it creates |
|---|---|
| Split mod & normal | Two channels — #mod-logs for moderation events (mod actions, voice moderation, automod & anti-spam, security) and #server-logs for everything else. |
| One channel per group | Separate #mod-logs (moderation, voice moderation, automod), #security-logs, #giveaway-logs, #ticket-logs and #server-logs (members, channels, threads, roles, server settings, integrations, messages). Only channels with an enabled event are created. |
| Detailed logs | A dedicated channel for every category, each receiving only its own events — #moderation-logs, #voice-logs, #automod-logs, #security-logs, #member-logs, #channel-logs, #thread-logs, #role-logs, #server-logs, #integration-logs, #community-logs, #message-logs and #other-logs. Only channels with an enabled event are created. |
-
1Pick the layout and category name
Defaults to a category called
Server Logs. -
2Choose who can see the logs
The category is hidden from
@everyone; admins always see it. Tick any extra roles (e.g. your staff role) that should have access. -
3Create
The bot builds the category, channels and webhooks, and overwrites the current routing to point at the new channels.
| Requirement | Why |
|---|---|
| Manage Server (dashboard) | Needed to open and edit the Logging page. |
| Manage Webhooks (bot) | So the bot can create the managed log webhooks in your channels. |
| View Audit Log (bot) | Strongly recommended. Lets each log name the person who performed the action and the reason they gave. Without it everything is still logged, just as Performed by: Unknown. |
| Manage Channels (bot) | Only for Quick Setup, to build the logging category and channels. |
| Active plan | Logs are only delivered while the server has an active Basic or Pro plan. You can still configure everything while a plan is inactive. |