Versions in this module Expand all Collapse all v0 v0.5.8 Mar 26, 2024 v0.5.7 Mar 26, 2024 Changes in this version + const BuffModeBite + const BuffModeLine + const Every15Minutes + const Every30Minutes + const EveryDay + const EveryHour + const EveryMinute + const EverySecond + const LevelModeList + const LevelModeValue + var DefaultBufferSize = 8 * 1024 + var DefaultFileFlags = os.O_CREATE | os.O_WRONLY | os.O_APPEND + var DefaultFilePerm os.FileMode = 0664 + 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) + func QuickOpenFile(filepath string) (*os.File, error) + type Builder struct + Output io.Writer + func NewBuilder() *Builder + func (b *Builder) Build() slog.FormattableHandler + func (b *Builder) With(fns ...ConfigFn) *Builder + func (b *Builder) WithBuffMode(bufMode string) *Builder + func (b *Builder) WithBuffSize(bufSize int) *Builder + func (b *Builder) WithCompress(compress bool) *Builder + func (b *Builder) WithConfigFn(fns ...ConfigFn) *Builder + func (b *Builder) WithLevelMode(mode slog.LevelMode) *Builder + func (b *Builder) WithLogLevel(level slog.Level) *Builder + func (b *Builder) WithLogLevels(levels []slog.Level) *Builder + func (b *Builder) WithLogfile(logfile string) *Builder + func (b *Builder) WithMaxSize(maxSize uint64) *Builder + func (b *Builder) WithOutput(w io.Writer) *Builder + func (b *Builder) WithRotateTime(rt rotatefile.RotateTime) *Builder + func (b *Builder) WithUseJSON(useJSON bool) *Builder + type Config struct + BackupNum uint + BackupTime uint + BuffMode string + BuffSize int + Compress bool + DebugMode bool + FilePerm fs.FileMode + Level slog.Level + LevelMode slog.LevelMode + Levels []slog.Level + Logfile string + MaxSize uint64 + RenameFunc func(filepath string, rotateNum uint) string + RotateMode rotatefile.RotateMode + RotateTime rotatefile.RotateTime + UseJSON bool + func NewConfig(fns ...ConfigFn) *Config + func NewEmptyConfig(fns ...ConfigFn) *Config + func (c *Config) CreateHandler() (*SyncCloseHandler, error) + func (c *Config) CreateWriter() (output SyncCloseWriter, err error) + func (c *Config) RotateWriter() (output SyncCloseWriter, err error) + func (c *Config) With(fns ...ConfigFn) *Config + func (c *Config) WithConfigFn(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 WithLevelNames(names []string) ConfigFn + func WithLogLevel(level slog.Level) ConfigFn + func WithLogLevels(levels slog.Levels) ConfigFn + func WithLogfile(logfile string) ConfigFn + func WithMaxSize(maxSize uint64) ConfigFn + func WithRotateMode(m rotatefile.RotateMode) ConfigFn + func WithRotateTime(rt rotatefile.RotateTime) ConfigFn + func WithUseJSON(useJSON bool) ConfigFn + 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 + From EmailOption + ToAddresses []string + func NewEmailHandler(from EmailOption, toAddresses []string) *EmailHandler + func (h *EmailHandler) Handle(r *slog.Record) error + type EmailOption struct + FromAddr string + Password string + SMTPHost string + SMTPPort int + type FlushCloseHandler struct + Output FlushCloseWriter + 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 + func (h *FlushCloseHandler) Close() error + func (h *FlushCloseHandler) Flush() error + func (h *FlushCloseHandler) Handle(record *slog.Record) error + type FlushCloseWriter interface + Flush func() error + type FlushWriter interface + Flush func() error + type FormatWriterHandler interface + Formatter func() slog.Formatter + Writer func() io.Writer + type IOWriterHandler struct + Output io.Writer + 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 + func (h *IOWriterHandler) Handle(record *slog.Record) error + func (h *IOWriterHandler) TextFormatter() *slog.TextFormatter + type LevelWithFormatter = slog.LevelWithFormatter + type LevelsWithFormatter = slog.LevelsWithFormatter + type LockWrapper struct + func (lw *LockWrapper) EnableLock(enable bool) + func (lw *LockWrapper) Lock() + func (lw *LockWrapper) LockEnabled() bool + func (lw *LockWrapper) Unlock() + type NopFlushClose struct + func (h *NopFlushClose) Close() error + func (h *NopFlushClose) Flush() error + type RotateTime = rotatefile.RotateTime + type SimpleHandler = IOWriterHandler + func NewHandler(out io.Writer, maxLevel slog.Level) *SimpleHandler + func NewSimple(out io.Writer, maxLevel slog.Level) *SimpleHandler + type SyncCloseHandler struct + Output SyncCloseWriter + 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 + func (h *SyncCloseHandler) Close() error + func (h *SyncCloseHandler) Flush() error + func (h *SyncCloseHandler) Handle(record *slog.Record) error + func (h *SyncCloseHandler) Writer() io.Writer + type SyncCloseWriter interface + Sync func() error + type SysLogHandler struct — darwin/amd64, js/wasm, linux/amd64 + func NewSysLog(opt *SysLogOpt) (*SysLogHandler, error) + func NewSysLogHandler(priority syslog.Priority, tag string) (*SysLogHandler, error) + func (h *SysLogHandler) Close() error + func (h *SysLogHandler) Flush() error + func (h *SysLogHandler) Handle(record *slog.Record) error + type SysLogOpt struct — darwin/amd64, js/wasm, linux/amd64 + Network string + Priority syslog.Priority + Raddr string + Tag string + type WriteCloserHandler struct + Output io.WriteCloser + 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 + func (h *WriteCloserHandler) Close() error + func (h *WriteCloserHandler) Flush() error + func (h *WriteCloserHandler) Handle(record *slog.Record) error