Overview
Output options provide advanced configuration for log output, including file rotation and writing to multiple destinations simultaneously.WithRotatingFile
Creates a simple rotating file writer with size-based rotation.Signature
Parameters
filename(string): Path to the log file (e.g., “app.log” or “/var/log/app.log”)maxSizeMB(int): Maximum size in megabytes before rotation (must be > 0)maxBackups(int): Maximum number of backup files to keep (must be >= 0)
Returns
Option: A configuration option that creates a rotating file writer
Type Definition
Description
Automatically rotates log files when they reach the specified size. Backup files are created with incrementing suffixes (.1, .2, .3, etc.). This is a convenience wrapper aroundWithRotatingFileEnhanced with sensible defaults.
Rotation Behavior
- When
app.logreachesmaxSizeMB, rotation occurs - Existing backups are renamed:
.2→.3,.1→.2 - Current file is renamed:
app.log→app.log.1 - New empty
app.logis created - Oldest backup is deleted if exceeding
maxBackups
Examples
Thread Safety
The rotating file writer is thread-safe and can handle concurrent writes from multiple goroutines.WithRotatingFileEnhanced
Creates a rotating file writer with full configuration including time-based rotation and compression.Signature
Parameters
config(RotatingFileConfig): Full configuration for the rotating file writer
Returns
Option: A configuration option that creates an enhanced rotating file writer
Type Definitions
Description
Provides advanced file rotation with time-based rotation, compression, and age-based cleanup.Examples
Rotation Types
- RotateSize: Rotates when file exceeds
MaxSizeMB(default behavior) - RotateDaily: Rotates at midnight (00:00) every day
- RotateHourly: Rotates at the start of each hour
Compression
WhenCompress: true, rotated files are gzip-compressed to save disk space. The original file is removed after successful compression.
Age-Based Cleanup
WhenMaxAge > 0, files older than the specified number of days are automatically deleted during rotation.
WithMultiOutput
Enables output to multiple writers simultaneously.Signature
Parameters
writers(…io.Writer): Variable number of output destinations
Returns
Option: A configuration option that configures multiple output writers
Type Definition
Description
Writes log messages to multiple destinations simultaneously. This is useful for:- Logging to both file and console
- Sending logs to multiple files
- Combining file output with network destinations
Examples
Performance
All writes happen synchronously to each writer. If one writer is slow, it will impact overall logging performance.WithOutputFlags
Configures output formatting flags (advanced use).Signature
Parameters
flags(int): Formatting flags for output
Returns
Option: A configuration option that sets output flags
Type Definition
Description
Low-level option for configuring output formatting flags. Most users should useWithFormatter instead.
Combined Usage
Related
- Core Options - Basic logger configuration
- RotatingFileWriter Reference - File rotation details