CloudSyncConfig class

Configuration for cloud sync of logs to a backend API.

The API key is the primary identifier - the server derives the project from it, so projectId is optional.

Basic Setup

await VooLogger.initialize(
  config: LoggingConfig(
    cloudSync: CloudSyncConfig(
      enabled: true,
      endpoint: 'https://api.yourbackend.com',
      apiKey: 'your-api-key',
    ),
  ),
);

Configuration Options

  • endpoint: Base URL for the logging API
  • apiKey: Authentication key for the API (derives project automatically)
  • batchSize: Number of logs to batch before sending (default: 50)
  • batchInterval: Time interval for automatic batch flush (default: 30s)
  • maxRetries: Number of retry attempts on failure (default: 3)
  • retryDelay: Delay between retries (default: 1s)
  • syncMinimumLevel: Only sync logs at or above this level

Constructors

CloudSyncConfig({bool enabled = false, String? endpoint, String? apiKey, String? projectId, int batchSize = 50, Duration batchInterval = const Duration(seconds: 30), int maxRetries = 3, Duration retryDelay = const Duration(seconds: 1), Duration timeout = const Duration(seconds: 10), String? syncMinimumLevel, Map<String, String>? headers, bool enableCompression = false, bool prioritizeErrors = true, int maxQueueSize = 1000})
const
CloudSyncConfig.development({required String endpoint, required String apiKey, String? projectId})
Creates a development configuration with smaller batches.
factory
CloudSyncConfig.production({required String endpoint, required String apiKey, String? projectId})
Creates a production-ready configuration.
factory

Properties

apiKey → String?
API key for authentication.
final
batchInterval → Duration
Time interval for automatic batch flush.
final
batchSize → int
Number of logs to accumulate before sending a batch.
final
enableCompression → bool
Whether to compress request payloads.
final
enabled → bool
Whether cloud sync is enabled.
final
endpoint → String?
Base URL for the logging API (e.g., 'https://api.devstack.io').
final
hashCode → int
The hash code for this object.
no setteroverride
headers → Map<String, String>?
Custom headers to include in requests.
final
isValid → bool
Validates that the configuration is complete for syncing.
no setter
logEndpoint → String?
Returns the full endpoint URL for log ingestion. Uses standardized telemetry endpoint format. Note: endpoint should already include /api if needed (e.g., 'http://localhost:5001/api')
no setter
maxQueueSize → int
Maximum number of logs to queue locally before dropping old ones.
final
maxRetries → int
Maximum number of retry attempts on failure.
final
prioritizeErrors → bool
Whether to sync immediately for error/fatal logs.
final
projectId → String?
Project ID (optional, for local reference only).
final
retryDelay → Duration
Delay between retry attempts.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
syncMinimumLevel → String?
Only sync logs at or above this level (null = sync all).
final
timeout → Duration
HTTP timeout for requests.
final

Methods

copyWith({bool? enabled, String? endpoint, String? apiKey, String? projectId, int? batchSize, Duration? batchInterval, int? maxRetries, Duration? retryDelay, Duration? timeout, String? syncMinimumLevel, Map<String, String>? headers, bool? enableCompression, bool? prioritizeErrors, int? maxQueueSize}) → CloudSyncConfig
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
override