Target-is
Create a RecordPredicate that returns true only when a record target exactly matches the expected string. Use it when one specific logical source should pass through a filter.
Interface
pub fn target_is(target : String) -> RecordPredicate {}input
target : String- Exact target value expected from the record.
output
RecordPredicate- Predicate that matches records whoserec.targetequalstarget.
Explanation
Detailed rules explaining key parameters and behaviors
- Matching uses direct string equality.
- This helper does not perform prefix or fuzzy matching.
- It is useful for isolating one subsystem when targets are intentionally stable.
- Combine it with level predicates when a single target needs stricter routing rules.
How to Use
Here are some specific examples provided.
When Keep One Exact Target
When only one service target should pass:
let logger = Logger::new(console_sink())
.with_filter(target_is("gateway.http"))In this example, records from sibling targets such as gateway.ws are excluded.
When Route A Single Target To A Sink
When a split path needs an exact match:
let predicate = all_of([
target_is("audit"),
level_at_least(Level::Info),
])In this example, the filter remains predictable because it does not rely on naming prefixes.
Error Case
e.g.:
If
targetis empty, only records whose target is also an empty string will match.If record targets are generated dynamically, exact matching may be too strict and lead to no matches.
Notes
Prefer
target_has_prefix(...)when targets are hierarchical and you want subtree matching.Exact target filters are easiest to maintain when target naming is stable across the project.