Modules
Logging
Event logs in your own channels — deleted and edited messages, joins and leaves, roles, channels, voice and server changes, with who did it.
Logging posts what happens in your server to channels you pick, as it happens: deleted and edited messages, joins, leaves, role and channel changes, voice sessions and more. Each post is one compact entry: a bold line saying what happened, the details as short fields, and the IDs in the footer so you can search for them later. Its colour tells you at a glance what kind of thing happened (see How a post reads).
The Logging module is off by default, and nothing is posted until a category or an event has a channel. Below the setup, every event is listed with a real post, so you know exactly what you'll get.
Set it up step by step#
- Make one or more private channels for your logs, like #server-log, and give Dexy View Channel and Manage Webhooks there. Dexy posts logs through a webhook it makes in each log channel (see How posts are sent).
- Open the dashboard, pick your server and turn on Logging if it's off.
- Open Logging in the sidebar. The page starts with General, then has a section for each category (Messages, Members, Roles, Channels, Emojis, Voice, Server) and Leave out at the bottom. On a wide screen, On this page on the right jumps between them.
- Under General, pick a channel in Everything to one channel. To split things up instead, skip this and pick a Channel in each category's section.
- In each category, click the events you don't want so they're crossed out. Everything else is logged.
- Press Save changes in the bar at the bottom.
- Press Send a test next to a category. Dexy posts a sample there and tells you if it couldn't. If Dexy can't post in a channel, the reason shows under its channel picker.
- To see what you'll get, open See what the posts look like under a category and click an event: it shows the real post that event makes.
To split things up, give each category its own channel:
d!logs set messages #message-log
d!logs set members #member-log
d!logs set voice #voice-log
d!logs set messages #message-log
d!logs set members #member-log
d!logs set voice #voice-log
How posts are sent#
Log posts normally don't come from Dexy's own account. In each log channel, Dexy makes one webhook named Dexy Logs, with Dexy's avatar, and every category and event that posts to that channel uses it. Fluxer shows the posts as from Dexy Logs, with the same bot tag as Dexy.
- Why: a webhook has its own rate limit in Fluxer, separate from Dexy's. A busy server's logs can't slow down Dexy's replies anywhere else, and big servers never run into Dexy's limits.
- What it needs: Manage Webhooks in the log channel (and View Channel). Dexy makes the webhook as soon as you pick the channel, so
d!logs setand the Logging page tell you right away if it's missing. - One per channel: however many categories or events share a channel, they share one webhook. A channel that stops being a log channel loses its webhook.
- If it's deleted: Dexy notices and makes a new one with the next post. If the channel already has as many webhooks as Fluxer allows, Dexy uses one of its own there or tells you to delete one.
- If the webhook doesn't work: Dexy posts the logs as itself instead, so nothing is lost. This happens when it can't make the webhook (Manage Webhooks is missing, the channel or server has as many webhooks as Fluxer allows, or the server's 2FA rule stops it) or the webhook fails. Dexy tries the webhook again every few minutes (a minute after a one-off failure). Meanwhile
d!logs,d!diag, the setup check, Send a test and the Logging page say the channel is posting as Dexy, and why. - If Fluxer says to slow down: Dexy waits for the webhook instead of switching, so a busy log never uses up Dexy's own limits.
- If Dexy can't post at all: when posting as itself fails too (no Send Messages or Embed Links, or the channel is gone), nothing is posted in that channel until you fix it, and those places say how many entries were dropped. Dexy tries again every few minutes, and right away when you send a test.
One channel per category, or per event#
By default each category has one channel, and every event in it posts there. That's the simple mode.
If you want some events somewhere else, turn on a channel for each event:
- Under General, turn on A channel for each event.
- Each category now lists its events with a switch and a channel of their own. An event without one shows which channel it uses instead (its category's Default channel).
- Pick channels for the events you want elsewhere, like Join under Members in #welcome-log, and press Save changes.
Setting a channel for a single event in chat turns this on for you. Turning it off sends every event back to its category's channel, but keeps the events' own channels for later. d!logs set all #channel sends every category to that channel and clears the events' own channels.
d!logs events lists every event with the name the other commands use (like member_join or message_delete) and where it posts right now:
Live in Discord
Live in Fluxer
What gets logged#
Events are grouped in seven categories. Each category can post to its own channel, or they can all share one. On the dashboard, See what the posts look like under each category shows the same real posts as below.
| Category | In chat | What it covers |
|---|---|---|
| Messages | messages | Deleted and edited messages, deleted attachments, bulk deletes, invites posted in chat, and moderator commands. |
| Members | members | Joins, leaves, roles added and removed, timeouts, nicknames, avatars, bans, unbans and kicks. |
| Roles | roles | Roles created, deleted or changed, with the permissions given and taken. |
| Channels | channels | Channels created, deleted or changed, permissions included. |
| Emojis | emojis | Emojis added, renamed or removed. |
| Voice | voice | Joins, leaves with how long they stayed, and moves between channels. |
| Server | server | Changes to the server's own settings, and invites made or deleted. |
How a post reads#
Every post has the same shape, so a busy log channel stays easy to scan:
- The member it's about, with their avatar, at the top (for message, member and voice events).
- One bold line saying what happened, with mentions: "Message sent by @Kai deleted in #general", "@Ivy was given @Helpers", "Role @Helpers updated". A deleted message's text follows right under it.
- Short facts side by side, up to three in a row: who did it, the reason, a case number, before and after. Longer ones, like an edit's text, roles or permissions, take a whole row.
- The IDs in the footer ("User ID: … • Message ID: …"), next to the time Fluxer shows for the post.
The colour says what kind of thing happened, whatever the category:
| Colour | For |
|---|---|
| Green | Something new or given back: joins, roles added, created channels, roles, emojis and invites, voice joins, unbans, timeouts removed. |
| Red | Something gone or taken: deleted messages and attachments, leaves, roles removed, bans, kicks, deleted channels, roles, emojis and invites, voice leaves. |
| Dark red | Bulk deletes. |
| Amber | Something changed: edits, nicknames, avatars, and role, channel, emoji and server settings. |
| Orange | Timeouts. |
| Blue | Voice moves, invites posted in chat and moderator commands. |
Every post below is a real one, made by Dexy's own logging code on a demo server.
Messages#
Message posts leave out ignored channels, members and roles, and bots unless you log them (see Leaving things out). Dexy's own messages are never logged.
Message deleted (message_delete): a message is deleted, by its author or by someone else. The post shows who wrote it, where, and its text. When a moderator deleted it, it says who.
Dexy Logs BOT Today at 9:41 PM
Kai
Message sent by @Kai deleted in #general anyone up for movie night at 9? bring snacks 🍿
Deleted by
@Orion
Reason
off topic
User ID: 1426760708090201036 • Message ID: 1560117288368917068Today at 9:41 PM
Message edited (message_edit): someone changes a message's text. The post shows the text before and after, with a link to the message. A link preview or an embed loading doesn't count as an edit.
Dexy Logs BOT Today at 9:41 PM
Cassie
@Cassie edited their message in #general · Jump to message
Before
the event starts at 8 pm
After
the event starts at 9 pm (moved, sorry!)
User ID: 1406160916156471297 • Message ID: 1560277243486331602Today at 9:41 PM
Attachment deleted (attachment_delete): a deleted message had files. The post lists their names and sizes; the files themselves are gone with the message. Dexy only knows a message's files if it saw the message being sent, in the last hour. When this event has no channel, the files are listed on the Message deleted post instead.
Dexy Logs BOT Today at 9:41 PM
Ember
Attachment of a message sent by @Ember deleted in #general
Attachments
sunset.png · 2.3 MB
User ID: 1410708992242670948 • Message ID: 1560404891284102457Today at 9:41 PM
Bulk delete (message_bulk): many messages are deleted at once, by a purge or a ban that deletes messages. The post shows how many, who wrote the ones Dexy still remembers, and their text.
Dexy Logs BOT Today at 9:41 PM
25 messages deleted in #general @Remy: FREE NITRO click here 4 @Remy: FREE NITRO click here 5 @Remy: FREE NITRO click here 6 @Remy: FREE NITRO click here 7 @Remy: FREE NITRO click here 8
Authors (5 of 25 known)
@Remy ×5
Deleted by
@Dexy
Channel ID: 1406174001699746003Today at 9:41 PM
Invite posted (invite_posted): someone posts a Fluxer invite link in chat. The post says which server it leads to, who made it and how many members it has (up to 3 invites per message).
Dexy Logs BOT Today at 9:41 PM
Dax
@Dax posted an invite in #general · Jump to message
Invite
pixelpals
Leads to
Pixel Pals 860 members
Made by
@Dax
User ID: 1430872300973910757 • Message ID: 1560854952621082006Today at 9:41 PM
Moderator command (mod_command): one of Dexy's moderation, appeal or auto-mod commands worked. The post shows who used it, where, and the command as typed.
Dexy Logs BOT Today at 9:41 PM
Luna
@Luna used the timeout command
Command
d!timeout <@1426469134750290279> 1h heated argument
Channel
#general
User ID: 1420455541937625164 • Channel ID: 1406174001699746003Today at 9:41 PM
Members#
Member posts leave out ignored members. Bans, unbans and kicks are always logged.
Join (member_join): someone joins. The post shows how old their account is and their member number. Accounts younger than 7 days are flagged with ⚠️ New account (change it with d!logs newaccount 14, or 0 to never flag them). When a bot is added, it says who added it.
Dexy Logs BOT Today at 9:41 PM
Starling
@Starling joined the server
Account created
2 days ago 27 Oct 2026
⚠️ New account
Under 7 days old
Member
#1,380
User ID: 1564578236334080077Today at 9:41 PM
Leave (member_leave): someone leaves, is kicked or is banned. The post shows how long they were in the server and the roles they had, and who removed them if they didn't leave on their own.
Dexy Logs BOT Today at 9:41 PM
Ember
@Ember left the server
Joined
13 weeks 5 days ago 25 Jul 2026
Roles (1)
@Members
User ID: 1410708992242670948Today at 9:41 PM
Role added (member_role_add): a member is given one or more roles, and who gave them.
Dexy Logs BOT Today at 9:41 PM
Ivy
@Ivy was given @Event Team
By
@Luna
User ID: 1437725879041262139 • Role ID: 1421631044507586808Today at 9:41 PM
Role removed (member_role_remove): a member loses one or more roles, and who took them.
Dexy Logs BOT Today at 9:41 PM
Ivy
@Ivy lost @Event Team
By
@Luna
User ID: 1437725879041262139 • Role ID: 1421631044507586808Today at 9:41 PM
Timeout (member_timeout): a member is timed out (until when, and how long from now) or their timeout is removed early, with who did it and the reason. A timeout made with Dexy shows its case number.
Dexy Logs BOT Today at 9:41 PM
Jett
@Jett was timed out
Until
29 Oct 2026, 16:25 (Asia/Kolkata) in 1 hour
Moderator
@Luna
Reason
heated argument
User ID: 1426469134750290279Today at 9:41 PM
Nickname change (member_nick): a nickname is set, changed or removed. The post shows it before and after, and who changed it when it wasn't the member.
Dexy Logs BOT Today at 9:41 PM
Felix
@Felix changed their nickname
Before
Felix
After
Felix 🎮
User ID: 1405205421910064038Today at 9:41 PM
Avatar change (member_avatar): a member changes or removes their avatar or their server avatar. The post links to the old and the new one.
Dexy Logs BOT Today at 9:41 PM
Astra
@Astra changed their avatar
Before
[Old avatar](/demos/avatars/astra.png)
After
[New avatar](/demos/avatars/astra.png)
User ID: 1405428823193655085Today at 9:41 PM
Ban (member_ban): someone is banned. The post shows who did it, the reason and how many of their messages were deleted. A ban made with Dexy shows the moderator and the case number. If Members posts to the same channel as your mod log, Dexy leaves out bans made with Dexy, since the case is already there.
Dexy Logs BOT Today at 9:41 PM
Dax
@Dax was banned
Moderator
@Luna with Dexy
Reason
spamming invites
Case
#8
User ID: 1430872300973910757Today at 9:41 PM
Unban (member_unban): a ban is lifted, with who did it and why.
Dexy Logs BOT Today at 9:41 PM
Quinn
@Quinn was unbanned
Moderator
@Luna
Reason
appeal accepted
User ID: 1428430029119212230Today at 9:41 PM
Kick (member_kick): someone is kicked, with who did it, the reason, and the case number when it was done with Dexy.
Dexy Logs BOT Today at 9:41 PM
Kai
@Kai was kicked
Moderator
@Luna
Reason
ignoring the rules
User ID: 1426760708090201036Today at 9:41 PM
Roles#
Role created (role_create): a new role, with its colour and permissions.
Dexy Logs BOT Today at 9:41 PM
Role @Artists created
Colour
#e05a9c
By
@Luna
Permissions
Embed Links, Attach Files
Role ID: 1433235882761042518Today at 9:41 PM
Role deleted (role_delete): a role is deleted. The post keeps its name, colour and permissions, so you can make it again.
Dexy Logs BOT Today at 9:41 PM
Role Event Winners deleted
Colour
#f0b232
By
@Luna
Permissions
Change Nickname
Role ID: 1436607877582912597Today at 9:41 PM
Role updated (role_update): a role's name, colour, emoji, whether it's shown separately or anyone can mention it, or its permissions change. Permissions given and taken are listed apart. Moving a role up or down isn't logged.
Dexy Logs BOT Today at 9:41 PM
Role @Helpers updated
Colour
#46d3f0 → #3ba55c
Shown separately
off → on
By
@Luna
Permissions given
Kick Members, Manage Messages
Permissions taken
Mention Everyone
Role ID: 1410467472627261437Today at 9:41 PM
Channels#
Channel posts leave out ignored channels, and channels in ignored categories.
Channel created (channel_create): a new channel or category, its kind and the category it's in.
Dexy Logs BOT Today at 9:41 PM
Channel #Movie Night created
Name
Movie Night
Type
Voice channel
Category
#Voice
By
@Luna
Channel ID: 1432687645731658230Today at 9:41 PM
Channel updated (channel_update): a channel's name, topic, slowmode, age restriction, category, user limit or bitrate changes, or its permissions for a role or member. Each change is shown before and after. Moving a channel up or down isn't logged.
Dexy Logs BOT Today at 9:41 PM
Channel #memes updated
Topic
Before: none After: Memes only, keep it friendly
Slowmode
off → 30 seconds
By
@Luna
Permissions
@Trusted: ✅ Embed Links @everyone: ❌ Embed Links
Channel ID: 1436191652174341485Today at 9:41 PM
Channel deleted (channel_delete): a channel or category is deleted, with its name and kind.
Dexy Logs BOT Today at 9:41 PM
Channel #old-events deleted
Type
Text channel
Category
#Community
By
@Luna
Channel ID: 1437668473650739958Today at 9:41 PM
Emojis#
Emoji created (emoji_create): one or more emojis are added to the server.
Dexy Logs BOT Today at 9:41 PM
Emoji :party_delta: created
By
@Luna
Emoji ID: 1426352138876338173Today at 9:41 PM
Emoji renamed (emoji_rename): an emoji's name changes, old name to new.
Dexy Logs BOT Today at 9:41 PM
Emoji :wave: renamed
Before
:wave:
After
:wave_hello:
By
@Luna
Emoji ID: 1425507730681115125Today at 9:41 PM
Emoji deleted (emoji_delete): one or more emojis are removed.
Dexy Logs BOT Today at 9:41 PM
Emoji :old_logo: deleted
By
@Luna
Emoji ID: 1436096791394855283Today at 9:41 PM
Voice#
Voice posts leave out ignored channels and members, and bots unless you log them. Muting, deafening and streaming aren't logged.
Join (voice_join): someone joins a voice channel.
Dexy Logs BOT Today at 8:06 PM
Atlas
@Atlas joined voice channel #Lounge
User ID: 1408831211420997508 • Channel ID: 1431041614671020136Today at 8:06 PM
Leave (voice_leave): someone leaves voice. The post says how long they were in voice. If they were already in voice when Dexy last started, the length isn't known. When a moderator disconnected them, it says who.
Dexy Logs BOT Today at 9:41 PM
Atlas
@Atlas left voice channel #Gaming
Time in voice
1 hour 35 minutes
User ID: 1408831211420997508 • Channel ID: 1420059805315670279Today at 9:41 PM
Move (voice_move): someone moves from one voice channel to another, with how long they were in the first one, and who moved them if it wasn't them.
Dexy Logs BOT Today at 9:01 PM
Atlas
@Atlas switched voice channels
From
#Lounge
To
#Gaming
Stayed
55 minutes
User ID: 1408831211420997508Today at 9:01 PM
Server#
Server settings changed (server_update): the server's name, icon, description, AFK channel, system messages channel or verification level changes, before and after.
Dexy Logs BOT Today at 9:41 PM
Server settings updated
Name
Dexy Lounge → Dexy Lounge 🌙
Icon
Changed
Verification level
Low → Medium
By
@Luna
Server ID: 1400000000000000001Today at 9:41 PM
Invite created (invite_create): a new invite, the channel it leads to, who made it, how many uses it allows and when it expires.
Dexy Logs BOT Today at 9:41 PM
Invite movienight created
Channel
#general
Made by
@Luna
Max uses
50
Expires
after 1 week
Invite: movienightToday at 9:41 PM
Invite deleted (invite_delete): an invite is deleted, with who made it, how many times it was used, and who deleted it.
Dexy Logs BOT Today at 9:41 PM
Invite summer25 deleted
Made by
@Nova
Uses
38
Invite: summer25Today at 9:41 PM
Turning events off#
On the dashboard, click an event in its category to cross it out (or use its switch with a channel for each event), then save. In chat:
d!logs off member_avatar
d!logs on member_avatar
d!logs off voice
d!logs off all
d!logs off member_avatar
d!logs on member_avatar
d!logs off voice
d!logs off all
Turning off one event keeps its channel, so d!logs on brings it back as it was. Turning off a category or all forgets the channels instead; set them again with d!logs set.
Live in Discord
Live in Fluxer
Leaving things out#
The ignore lists keep noise out of your logs. On the dashboard they're under Leave out at the bottom of the Logging page.
- Channels (or whole categories): nothing that happens in them is logged — their messages, voice and channel changes.
- Roles: deleted and edited messages of members with those roles aren't logged.
- Members: what those members do isn't logged.
- Bots: bots' messages and voice are left out by default. Bots joining and leaving are still logged.
Bans, unbans and kicks are always logged, whatever the ignore lists say.
d!logs ignore add #bot-spam
d!logs ignore add @Mods
d!logs ignore remove #bot-spam
d!logs ignore bots off
d!logs ignore
d!logs ignore add #bot-spam
d!logs ignore add @Mods
d!logs ignore remove #bot-spam
d!logs ignore bots off
d!logs ignore
Live in Discord
Live in Fluxer
Each list holds up to 200 channels, roles or members.
Message text and privacy#
Message text is only ever posted to your own log channels, and only once a message log has a channel.
- A deleted message's text comes from Fluxer's delete event itself.
- To show an edit's text before the change, Dexy keeps recent messages in memory: up to 100 per channel, for an hour at most, and only in servers whose message log is on (never from ignored channels, members, roles or bots). They're never written to a database or disk, they're dropped soon after you turn the message log off, and they're gone whenever Dexy restarts.
- Attachments are listed by file name. Dexy doesn't re-upload the files.
See the privacy page for everything Dexy stores.
Checking your setup#
d!logs
d!logs test
d!logs test voice
d!logs
d!logs test
d!logs test voice
d!logs shows every category with its channel, what's off, what's ignored, and a warning next to any channel Dexy couldn't post in. d!logs test posts a sample entry in every log channel (or one category's) and tells you which worked.
Live in Discord
Live in Fluxer
Avatars appear on join and leave posts; turn them off with d!logs avatars off or Avatars on join and leave.
Leave posts list the roles the member had. To leave them out, use d!logs leaveroles off or switch off Roles on leave.
Settings#
| Setting | What it does | Default |
|---|---|---|
| Log channelslog_channels | Category or event -> channel | None |
| A log channel for each eventlog_per_event | Whether each event can be posted to a channel of its own. | Off |
| Log events turned offlog_events_off | Events not posted | None |
| Avatars on join and leave logslog_show_avatars | Whether join and leave posts show the member's avatar. | On |
| Roles on leave logslog_leave_roles | Whether leave posts list the roles the member had when they left. | On |
| New account age (logs)log_new_account_days | Joins from accounts younger than this get ⚠️ new account in the join log, to spot raids and alt accounts. | 7 |
| Channels left out of logslog_ignore_channels | Nothing that happens in these channels is posted: messages, voice, and changes to the channel itself. A category covers every channel in it. | None |
| Roles left out of logslog_ignore_roles | Deleted and edited messages of members with any of these roles aren't logged, for example a staff role. | None |
| Members left out of logslog_ignore_users | Nothing these members do is logged: messages, joins, changes to them, voice. | None |
| Leave bots out of logslog_ignore_bots | Bots post and edit a lot. On, their messages and voice aren't logged. | On |
Values, limits and who can change each: Logging settings reference.
Commands#
| Command | What it does | Needs |
|---|---|---|
| logs | Show the event logs: where each category and event posts, what's off and what's ignored.avatars · events · ignore · leaveroles · newaccount · off · on · perevent · set · test | Manage Server, or a role with Settings |
Full details for each: Logging command reference.
Who can set it up#
The logs commands and the Logging page need Manage Server, or a role with Dexy's Change settings permission (see Permissions).
In each log channel, Dexy needs View Channel and Manage Webhooks: it posts through a webhook it makes there (see How posts are sent). Without Manage Webhooks it posts as itself, which needs Send Messages and Embed Links. To say who did something, it needs View Audit Log in the server. d!diag checks both while Logging is on.
Troubleshooting#
Nothing is posted. Check the module is on (d!modules enable logging) and that the category or event has a channel (d!logs). Then run d!logs test.
A channel says it's posting as Dexy. Dexy can't use the webhook it normally posts through there, so it posts as itself; nothing is lost. Give it Manage Webhooks and View Channel in that channel (or its category), then press Send a test (or run d!logs test) to switch back at once. If it has as many webhooks as Fluxer allows, delete one you don't use. In a server that requires 2FA for moderator actions, Fluxer can refuse to let Dexy make the webhook; the owner can lower that requirement in the server settings.
A channel says nothing can be posted. Dexy can't post there at all, not even as itself. Give it Manage Webhooks, or at least Send Messages and Embed Links, in that channel; if the channel was deleted, set a new one. Until it's fixed, entries for that channel are dropped, and Dexy tries again every few minutes.
The posts say Dexy Logs instead of Dexy. That's the webhook Dexy posts logs through. It's expected; see How posts are sent. Posts that say Dexy instead mean the webhook isn't working in that channel right now.
Posts don't say who did it. Give Dexy View Audit Log.
An edit doesn't show the text before. Dexy only knows messages sent while it was running and the message log was on, and only for an hour. Older messages show the new text only.
Some entries were skipped. During a flood, Dexy keeps the newest 100 entries per channel and says how many it skipped, so it stays within Fluxer's limits and your mod log still gets through.