Rotation Config
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
)
}Content copied to clipboard
Size-based rotation with compression:
rotation {
policy = RotationPolicy.SizeBased(
maxSizeBytes = 100 * 1024 * 1024 // 100MB
)
compression = CompressionConfig(
enabled = true
)
}Content copied to clipboard
Composite rotation:
rotation {
policy = RotationPolicy.Composite(
timePattern = TimeRotationPattern.DAILY,
maxSizeBytes = 100 * 1024 * 1024
)
}Content copied to clipboard
Since
1.1.0
Constructors
Link copied to clipboard
constructor(enabled: Boolean = true, policy: RotationPolicy = RotationPolicy.TimeBased(), retention: RetentionConfig = RetentionConfig(), compression: CompressionConfig = CompressionConfig())