Filtering
Control which records reach each sink.
Level Filtering
python
from logly import logger
# Only WARNING and above
sink_id = logger.add("warnings.log", level="WARNING")
logger.info("Not captured")
logger.warning("Captured!")
logger.complete()
logger.remove(sink_id)Prefix Filtering
python
from logly import logger
# Only records from loggers starting with "myapp."
sink_id = logger.add("app.log", filter={"name": "myapp."})
logger.info("Only myapp.* records appear here")
logger.complete()
logger.remove(sink_id)Callable Filter
python
from logly import logger
def important_only(record):
return "important" in record["message"].lower()
sink_id = logger.add("filtered.log", filter=important_only)
logger.info("This is skipped")
logger.warning("This is IMPORTANT")
logger.complete()
logger.remove(sink_id)Dictionary Filter
python
from logly import logger
sink_id = logger.add(
"filtered.log",
filter={"name": "myapp.", "extra.status": "active"},
)
logger.info("Matches both name prefix and extra field")
logger.complete()
logger.remove(sink_id)INFO
Filters are applied per-sink, so different sinks can have different filter rules.
