diff --git a/Module/DMLogger/DMLogger.cs b/Module/DMLogger/DMLogger.cs
new file mode 100644
index 0000000..a63f60c
--- /dev/null
+++ b/Module/DMLogger/DMLogger.cs
@@ -0,0 +1,53 @@
+using Discord;
+using Discord.WebSocket;
+using Newtonsoft.Json.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Noikoio.RegexBot.Module.DMLogger
+{
+ ///
+ /// Listens for and logs direct messages sent to the bot.
+ /// The function of this module should be transparent to the user, and thus no configuration is needed.
+ ///
+ class DMLogger : BotModule
+ {
+ public override string Name => nameof(DMLogger);
+
+ public DMLogger(DiscordSocketClient client) : base(client)
+ {
+ client.MessageReceived += Client_MessageReceived;
+ client.MessageUpdated += Client_MessageUpdated;
+ }
+
+ private async Task Client_MessageReceived(SocketMessage arg)
+ {
+ if (!(arg.Channel is IDMChannel)) return;
+
+ await ProcessMessage(arg, false);
+ }
+
+ private async Task Client_MessageUpdated(Cacheable arg1, SocketMessage arg2, ISocketMessageChannel arg3)
+ {
+ if (!(arg2.Channel is IDMChannel)) return;
+
+ await ProcessMessage(arg2, true);
+ }
+
+ public override Task