Start here. This is the direct spoken answer to practice first.
Why this question matters
Audit logs are not just debug logs. They exist to explain who changed sensitive system state, when it changed, and what the system believed at the time.
I would record an immutable audit event for important admin actions. Each event would include actor id, actor email or display name, action, target type, target id, timestamp, request context, and enough before/after data to understand the change. I would keep it server-generated so clients cannot spoof audit fields. The admin UI can search by actor, action, target, and time range.