RotationConfig

data class RotationConfig(val enabled: Boolean = true, val policy: RotationPolicy = RotationPolicy.TimeBased(), val retention: RetentionConfig = RetentionConfig(), val compression: CompressionConfig = CompressionConfig())(source)

Log rotation configuration for SoulLogger.

Provides enterprise-grade log rotation with:

  • Time-based rotation (hourly, daily, weekly, monthly)

  • Size-based rotation

  • Composite rotation (time + size)

  • Automatic compression of rotated files

  • Retention policies (by age, count, total size)

Configuration Examples

Daily rotation with 30-day retention:

rotation {
policy = RotationPolicy.TimeBased(
pattern = TimeRotationPattern.DAILY
)
retention = RetentionConfig(
maxHistoryDays = 30
)
}

Size-based rotation with compression:

rotation {
policy = RotationPolicy.SizeBased(
maxSizeBytes = 100 * 1024 * 1024 // 100MB
)
compression = CompressionConfig(
enabled = true
)
}

Composite rotation:

rotation {
policy = RotationPolicy.Composite(
timePattern = TimeRotationPattern.DAILY,
maxSizeBytes = 100 * 1024 * 1024
)
}

Since

1.1.0

Constructors

Link copied to clipboard
constructor(enabled: Boolean = true, policy: RotationPolicy = RotationPolicy.TimeBased(), retention: RetentionConfig = RetentionConfig(), compression: CompressionConfig = CompressionConfig())

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard