28 lines
705 B
Go
28 lines
705 B
Go
package format
|
|
|
|
import (
|
|
"logwisp/internal/config"
|
|
"logwisp/internal/core"
|
|
)
|
|
|
|
// Formatter defines the interface for transforming a LogEntry into a byte slice
|
|
type Formatter interface {
|
|
// Format takes a LogEntry and returns the formatted log as a byte slice
|
|
Format(entry core.LogEntry) ([]byte, error)
|
|
|
|
// Name returns the formatter's type name (e.g., "json", "raw")
|
|
Name() string
|
|
}
|
|
|
|
// NewFormatter creates a Formatter using formatter/sanitizer packages
|
|
func NewFormatter(cfg *config.FormatConfig) (Formatter, error) {
|
|
if cfg == nil {
|
|
cfg = &config.FormatConfig{
|
|
Type: DefaultFormatType,
|
|
Flags: 0,
|
|
SanitizerPolicy: "raw",
|
|
}
|
|
}
|
|
|
|
return NewFormatterAdapter(cfg)
|
|
} |