Migration Guide: Simplified Rotating File Setup
This guide shows how to migrate from the verbose RotatingFileSinkConfig pattern
to the new fapilog.sinks.rotating_file() convenience factory.
Before (Verbose Configuration)
from fapilog import get_logger
from fapilog.plugins.sinks.rotating_file import RotatingFileSink, RotatingFileSinkConfig
from pathlib import Path
config = RotatingFileSinkConfig(
directory=Path("logs"),
filename_prefix="app",
max_bytes=10485760,
max_files=7,
compress_rotated=True,
)
sink = RotatingFileSink(config)
logger = get_logger(sinks=[sink])
After (Convenience Factory)
from fapilog import get_logger
from fapilog.sinks import rotating_file
logger = get_logger(
sinks=[rotating_file("logs/app.log", rotation="10 MB", retention=7, compression=True)]
)
Notes
The factory parses the path into directory + filename prefix automatically.
Rotation values accept human-readable strings (e.g.,
"10 MB").Behavior is additive; the old configuration path still works.
Settings Alternative
from fapilog import Settings, get_logger
from fapilog.core.settings import RotatingFileSettings
settings = Settings(
sink_config=Settings.SinkConfig(
rotating_file=RotatingFileSettings(
directory="logs",
filename_prefix="app",
max_bytes="10 MB",
max_files=7,
compress_rotated=True,
)
)
)
logger = get_logger(settings=settings)