log method

void log({
  1. required AuditType type,
  2. required String action,
  3. required String moduleId,
  4. String? targetModuleId,
  5. Map<String, dynamic>? context,
  6. AuditSeverity severity = AuditSeverity.low,
  7. bool success = true,
})

Log a security audit event

Implementation

void log({
  required AuditType type,
  required String action,
  required String moduleId,
  String? targetModuleId,
  Map<String, dynamic>? context,
  AuditSeverity severity = AuditSeverity.low,
  bool success = true,
}) {
  final entry = AuditEntry(
    type: type,
    action: action,
    moduleId: moduleId,
    targetModuleId: targetModuleId,
    context: context,
    severity: severity,
    success: success,
  );

  _entries.add(entry);

  // Trim old entries
  if (_entries.length > _maxEntries) {
    _entries.removeAt(0);
  }

  // Log critical events
  if (severity == AuditSeverity.critical && kDebugMode) {
    debugPrint('[AUDIT:CRITICAL] $action by $moduleId');
  }

  notifyListeners();
}