2.3 KiB
2.3 KiB
Builder Pattern Guide
The ConfigBuilder provides a fluent API for constructing logger configurations with compile-time safety and deferred validation.
Creating a Builder
NewConfigBuilder creates a new configuration builder initialized with default values.
func NewConfigBuilder() *ConfigBuilder
builder := log.NewConfigBuilder()
Builder Methods
All builder methods return *ConfigBuilder for chaining. Errors are accumulated and returned by Build().
Common Methods
| Method | Parameters | Description |
|---|---|---|
Level(level int64) |
level: Numeric log level |
Sets log level (-4 to 8) |
LevelString(level string) |
level: Named level |
Sets level by name ("debug", "info", etc.) |
Directory(dir string) |
dir: Path |
Sets log directory |
Format(format string) |
format: Output format |
Sets format ("txt", "json", "raw") |
BufferSize(size int64) |
size: Buffer size |
Sets channel buffer size |
MaxSizeKB(size int64) |
size: Size in MB |
Sets max file size |
EnableConsole(enable bool) |
enable: Boolean |
Enables console output |
EnableFile(enable bool) |
enable: Boolean |
Enable file output |
HeartbeatLevel(level int64) |
level: 0-3 |
Sets monitoring level |
Build
func (b *ConfigBuilder) Build() (*Config, error)
Validates builder configuration and returns logger config. Returns accumulated errors if any builder operations failed.
cfg, err := builder.Build()
if err != nil {
// Handle validation or conversion errors
}
Usage pattern
logger := log.NewLogger()
cfg, err := log.NewConfigBuilder().
Directory("/var/log/app").
Format("json").
LevelString("debug").
Build()
if err != nil {
return err
}
err = logger.ApplyConfig(cfg)