logrotate

package
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2026 License: MPL-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultFilenameFunc

func DefaultFilenameFunc() string

Types

type Options

type Options struct {
	// Directory defines the directory where log files will be written to.
	// If the directory does not exist, it will be created.
	Directory string

	// MaximumFileSize defines the maximum size of each log file in bytes.
	// When MaximumFileSize == 0, no upper bound will be enforced.
	// No file will be greater than MaximumFileSize. A Write() which would
	// exceed MaximumFileSize will instead cause a new file to be created.
	// If a Write() is attempting to write more bytes than specified by
	// MaximumFileSize, the write will be skipped.
	MaximumFileSize int64

	// MaximumLifetime defines the maximum amount of time a file will
	// be written to before a rotation occurs.
	// When MaximumLifetime == 0, no log rotation will occur.
	MaximumLifetime time.Duration

	// FileNameFunc specifies the name a new file will take.
	// FileNameFunc must ensure collisions in filenames do not occur.
	// Do not rely on timestamps to be unique, high throughput writes
	// may fall on the same timestamp.
	// Eg.
	// 	2020-03-28_15-00-945-<random-hash>.log
	// When FileNameFunc is not specified, DefaultFilenameFunc will be used.
	FileNameFunc func() string

	// FlushAfterEveryWrite specifies whether the writer should flush
	// the buffer after every write.
	FlushAfterEveryWrite bool
}

Options define configuration options for Writer.

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

Writer is a concurrency-safe writer with file rotation.

func New

func New(logger *slog.Logger, opts Options) (*Writer, error)

New creates a new concurrency safe Writer which performs log rotation.

func (*Writer) Close

func (w *Writer) Close() error

Close closes the writer. Any accepted writes will be flushed. Any new writes will be rejected. Once Close() exits, files are synchronized to disk.

func (*Writer) Write

func (w *Writer) Write(p []byte) (n int, err error)

Write writes p into the current file, rotating if necessary. Write is non-blocking, if the writer's queue is not full. Write is blocking otherwise.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL