Package handler provide useful common log handlers. eg: file, console, multi_file, rotate_file, stream, syslog, email
handler -> buffered -> rotated -> writer(os.File)
handler.ConsoleHandler
Console handlerhandler.FileHandler
File handlerhandler.StreamHandler
Stream handlerhandler.SyslogHandler
Syslog handlerhandler.EmailHandler
Email handlerhandler.FlushCloseHandler
Flush and close handler
Docs generated by: go doc ./handler
func LineBuffOsFile(f *os.File, bufSize int, levels []slog.Level) slog.Handler
func LineBuffWriter(w io.Writer, bufSize int, levels []slog.Level) slog.Handler
func LineBufferedFile(logfile string, bufSize int, levels []slog.Level) (slog.Handler, error)
type ConsoleHandler = IOWriterHandler
func ConsoleWithLevels(levels []slog.Level) *ConsoleHandler
func ConsoleWithMaxLevel(level slog.Level) *ConsoleHandler
func NewConsole(levels []slog.Level) *ConsoleHandler
func NewConsoleHandler(levels []slog.Level) *ConsoleHandler
func NewConsoleWithLF(lf slog.LevelFormattable) *ConsoleHandler
type EmailHandler struct{ ... }
func NewEmailHandler(from EmailOption, toAddresses []string) *EmailHandler
type EmailOption struct{ ... }
type FlushCloseHandler struct{ ... }
func FlushCloserWithLevels(out FlushCloseWriter, levels []slog.Level) *FlushCloseHandler
func FlushCloserWithMaxLevel(out FlushCloseWriter, maxLevel slog.Level) *FlushCloseHandler
func NewBuffered(w io.WriteCloser, bufSize int, levels ...slog.Level) *FlushCloseHandler
func NewBufferedHandler(w io.WriteCloser, bufSize int, levels ...slog.Level) *FlushCloseHandler
func NewFlushCloseHandler(out FlushCloseWriter, levels []slog.Level) *FlushCloseHandler
func NewFlushCloser(out FlushCloseWriter, levels []slog.Level) *FlushCloseHandler
func NewFlushCloserWithLF(out FlushCloseWriter, lf slog.LevelFormattable) *FlushCloseHandler
type IOWriterHandler struct{ ... }
func IOWriterWithLevels(out io.Writer, levels []slog.Level) *IOWriterHandler
func IOWriterWithMaxLevel(out io.Writer, maxLevel slog.Level) *IOWriterHandler
func NewIOWriter(out io.Writer, levels []slog.Level) *IOWriterHandler
func NewIOWriterHandler(out io.Writer, levels []slog.Level) *IOWriterHandler
func NewIOWriterWithLF(out io.Writer, lf slog.LevelFormattable) *IOWriterHandler
func NewSimpleHandler(out io.Writer, maxLevel slog.Level) *IOWriterHandler
func SimpleWithLevels(out io.Writer, levels []slog.Level) *IOWriterHandler
type SimpleHandler = IOWriterHandler
func NewHandler(out io.Writer, maxLevel slog.Level) *SimpleHandler
func NewSimple(out io.Writer, maxLevel slog.Level) *SimpleHandler
type SyncCloseHandler struct{ ... }
func JSONFileHandler(logfile string, fns ...ConfigFn) (*SyncCloseHandler, error)
func MustFileHandler(logfile string, fns ...ConfigFn) *SyncCloseHandler
func MustRotateFile(logfile string, rt rotatefile.RotateTime, fns ...ConfigFn) *SyncCloseHandler
func MustSimpleFile(filepath string, maxLv ...slog.Level) *SyncCloseHandler
func MustSizeRotateFile(logfile string, maxSize int, fns ...ConfigFn) *SyncCloseHandler
func MustTimeRotateFile(logfile string, rt rotatefile.RotateTime, fns ...ConfigFn) *SyncCloseHandler
func NewBuffFileHandler(logfile string, buffSize int, fns ...ConfigFn) (*SyncCloseHandler, error)
func NewFileHandler(logfile string, fns ...ConfigFn) (h *SyncCloseHandler, err error)
func NewRotateFile(logfile string, rt rotatefile.RotateTime, fns ...ConfigFn) (*SyncCloseHandler, error)
func NewRotateFileHandler(logfile string, rt rotatefile.RotateTime, fns ...ConfigFn) (*SyncCloseHandler, error)
func NewSimpleFile(filepath string, maxLv ...slog.Level) (*SyncCloseHandler, error)
func NewSimpleFileHandler(filePath string, maxLv ...slog.Level) (*SyncCloseHandler, error)
func NewSizeRotateFile(logfile string, maxSize int, fns ...ConfigFn) (*SyncCloseHandler, error)
func NewSizeRotateFileHandler(logfile string, maxSize int, fns ...ConfigFn) (*SyncCloseHandler, error)
func NewSyncCloseHandler(out SyncCloseWriter, levels []slog.Level) *SyncCloseHandler
func NewSyncCloser(out SyncCloseWriter, levels []slog.Level) *SyncCloseHandler
func NewSyncCloserWithLF(out SyncCloseWriter, lf slog.LevelFormattable) *SyncCloseHandler
func NewTimeRotateFile(logfile string, rt rotatefile.RotateTime, fns ...ConfigFn) (*SyncCloseHandler, error)
func NewTimeRotateFileHandler(logfile string, rt rotatefile.RotateTime, fns ...ConfigFn) (*SyncCloseHandler, error)
func SyncCloserWithLevels(out SyncCloseWriter, levels []slog.Level) *SyncCloseHandler
func SyncCloserWithMaxLevel(out SyncCloseWriter, maxLevel slog.Level) *SyncCloseHandler
type SysLogHandler struct{ ... }
func NewSysLogHandler(priority syslog.Priority, tag string) (*SysLogHandler, error)
type WriteCloserHandler struct{ ... }
func NewWriteCloser(out io.WriteCloser, levels []slog.Level) *WriteCloserHandler
func NewWriteCloserHandler(out io.WriteCloser, levels []slog.Level) *WriteCloserHandler
func NewWriteCloserWithLF(out io.WriteCloser, lf slog.LevelFormattable) *WriteCloserHandler
func WriteCloserWithLevels(out io.WriteCloser, levels []slog.Level) *WriteCloserHandler
func WriteCloserWithMaxLevel(out io.WriteCloser, maxLevel slog.Level) *WriteCloserHandler
type Builder struct{ ... }
func NewBuilder() *Builder
type Config struct{ ... }
func NewConfig(fns ...ConfigFn) *Config
func NewEmptyConfig(fns ...ConfigFn) *Config
type ConfigFn func(c *Config)
func WithBackupNum(n uint) ConfigFn
func WithBackupTime(bt uint) ConfigFn
func WithBuffMode(buffMode string) ConfigFn
func WithBuffSize(buffSize int) ConfigFn
func WithCompress(compress bool) ConfigFn
func WithFilePerm(filePerm fs.FileMode) ConfigFn
func WithLevelMode(mode slog.LevelMode) ConfigFn
func WithLevelName(name string) ConfigFn
func WithLevelNames(names []string) ConfigFn
func WithLevelNamesString(names string) ConfigFn
func WithLogLevel(level slog.Level) ConfigFn
func WithLogLevels(levels slog.Levels) ConfigFn
func WithLogfile(logfile string) ConfigFn
func WithMaxLevelName(name string) ConfigFn
func WithMaxSize(maxSize uint64) ConfigFn
func WithRotateMode(m rotatefile.RotateMode) ConfigFn
func WithRotateTime(rt rotatefile.RotateTime) ConfigFn
func WithRotateTimeString(rt string) ConfigFn
func WithTimeClock(clock rotatefile.Clocker) ConfigFn
func WithUseJSON(useJSON bool) ConfigFn