diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index 8e733d4df39..77024732d2f 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -132,9 +132,10 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
sleep(1)
charge_counter++
-/obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1) //if recharge is started is important for the trigger spells
+/obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1, mob/user = usr) //if recharge is started is important for the trigger spells
before_cast(targets)
invocation()
+ user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) cast the spell [name].")
spawn(0)
if(charge_type == "recharge" && recharge)
start_recharge()
@@ -285,4 +286,4 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
perform(targets)
- return
\ No newline at end of file
+ return
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 349638b93af..5f90a827826 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -342,6 +342,7 @@
else
user.spell_list += S
user <<"you rapidly read through the arcane book. Suddenly you realize you understand [spellname]!"
+ user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) learned the spell [spellname] ([S]).")
onlearned(user)
/obj/item/weapon/spellbook/oneuse/proc/recoil(mob/user as mob)