Audit logs record every meaningful action taken in your app.
Audit logs record the who/what/when/where of every meaningful action in your product: user X changed permission Y at time Z from IP W. They're a compliance and security requirement (SOC 2 requires them; HIPAA and PCI DSS effectively require them) and a genuine forensic tool when incidents happen. Enterprise buyers will ask about audit logs during security review — companies without them either lose the deal or ship them under contractual pressure in a rushed sprint.
Standard event catalog: (1) Auth events — login success/failure, logout, session expiry, MFA challenges. (2) User management — invite, role change, deactivation. (3) Admin actions — settings changes, integration configuration. (4) Data access — reads of sensitive data (patient records, financial data). (5) Data modification — significant creates, updates, deletes. Skip: routine reads of non-sensitive data (audit-logging every page view creates unusable noise).
Every audit event should carry: (a) timestamp (ISO 8601, UTC), (b) actor (user ID + display name + type: human/API key/system), (c) action (verb, from a controlled vocabulary), (d) target (object type + ID + display name), (e) before/after values for changes, (f) source IP and user agent, (g) session/request ID for correlation, (h) result (success/failure + reason). Consistency across event types is what makes logs searchable and useful.
Retention: 1 year minimum for SOC 2, 6+ years for HIPAA, 7+ years for financial data. Immutability: audit logs must be write-once — a compromised admin should not be able to delete their tracks. Use append-only storage or write to a separate audit-only database with restricted permissions. Better: stream to an external SIEM (Splunk, Datadog, Panther) so tampering with your database doesn't erase the record.
Enterprise customers want to see their own audit logs, not just yours. Ship an in-product audit log viewer at Enterprise tier: filterable by user, event type, and date range; exportable as CSV/JSON; API-accessible for streaming to their SIEM. Streaming-to-SIEM (Panther, Splunk, Datadog via webhook/API) is what large enterprises actually need — a UI is a starting point but insufficient at scale.
(a) Logging inconsistently — some code paths log, others don't; auditor spot-checks find gaps. (b) Logging in the application server only — if the server is compromised, logs can be edited. (c) Bloating logs with routine reads that never get queried. (d) Missing before/after values for changes, making forensic investigation impossible. (e) No retention policy — logs from 3 years ago still stored in hot storage costing $$$.
Investor directory · Fundraising library · Articles A–Z · Company funding database