a351b38e72
This driver uses protobuf to store log messages and has better defaults for log file handling (e.g. compression and file rotation enabled by default). Signed-off-by: Brian Goff <cpuguy83@gmail.com>
36 lines
802 B
Go
36 lines
802 B
Go
package local
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// CreateConfig is used to configure new instances of driver
|
|
type CreateConfig struct {
|
|
DisableCompression bool
|
|
MaxFileSize int64
|
|
MaxFileCount int
|
|
}
|
|
|
|
func newDefaultConfig() *CreateConfig {
|
|
return &CreateConfig{
|
|
MaxFileSize: defaultMaxFileSize,
|
|
MaxFileCount: defaultMaxFileCount,
|
|
DisableCompression: !defaultCompressLogs,
|
|
}
|
|
}
|
|
|
|
func validateConfig(cfg *CreateConfig) error {
|
|
if cfg.MaxFileSize < 0 {
|
|
return errors.New("max size should be a positive number")
|
|
}
|
|
if cfg.MaxFileCount < 0 {
|
|
return errors.New("max file count cannot be less than 0")
|
|
}
|
|
|
|
if !cfg.DisableCompression {
|
|
if cfg.MaxFileCount <= 1 {
|
|
return errors.New("compression cannot be enabled when max file count is 1")
|
|
}
|
|
}
|
|
return nil
|
|
}
|