// Package auditfailure 提供失败审计二次写入故障的最小进程内观测。 package auditfailure import ( "sync/atomic" "go.uber.org/zap" "github.com/break/junhong_cmp_fiber/pkg/logger" ) var secondaryWriteFailures atomic.Uint64 // RecordSecondaryWriteFailure 累计失败审计二次写入故障并记录 critical 安全日志。 func RecordSecondaryWriteFailure(action, resourceKey, requestID, correlationID, originalErrorCode string, err error) { count := secondaryWriteFailures.Add(1) logger.GetAppLogger().Error( "失败或拒绝审计二次写入失败", zap.String("severity", "critical"), zap.String("action", action), zap.String("resource_key", resourceKey), zap.String("request_id", requestID), zap.String("correlation_id", correlationID), zap.String("original_error_code", originalErrorCode), zap.Uint64("secondary_write_failure_count", count), zap.Error(err), ) } // SecondaryWriteFailureCount 返回当前进程累计的失败审计二次写入故障数。 func SecondaryWriteFailureCount() uint64 { return secondaryWriteFailures.Load() }