Skip to content

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

moonbit
pub fn target_is(target : String) -> RecordPredicate {}

input

  • target : String - Exact target value expected from the record.

output

  • RecordPredicate - Predicate that matches records whose rec.target equals target.

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:

moonbit
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:

moonbit
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 target is 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

  1. Prefer target_has_prefix(...) when targets are hierarchical and you want subtree matching.

  2. Exact target filters are easiest to maintain when target naming is stable across the project.

Published from the repository docs folder with VitePress.