📝 Add record patch API docs

This commit is contained in:
Nanaloveyuki
2026-05-12 16:00:17 +08:00
parent dd895ac211
commit 474a1931c2
8 changed files with 562 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
---
name: prefix-message
group: api
category: patching
update-time: 20260512
description: Create a reusable record patch that prepends text to the message.
key-word:
- patch
- message
- transform
- public
---
## Prefix-message
Create a `RecordPatch` that prepends a fixed prefix to `rec.message`. This helper is useful for tagging records with stable context without changing every call site.
### Interface
```moonbit
pub fn prefix_message(prefix : String) -> RecordPatch {}
```
#### input
- `prefix : String` - Text inserted before the original message.
#### output
- `RecordPatch` - Patch that returns a record whose message starts with `prefix`.
### Explanation
Detailed rules explaining key parameters and behaviors
- The patch preserves the original message content after the inserted prefix.
- It does not touch target, level, timestamp, or fields.
- This helper is useful for environment tags, subsystem labels, and compatibility shims.
- When combined with other patches, composition order controls whether the prefix is applied before or after other message rewrites.
### How to Use
Here are some specific examples provided.
#### When Add A Stable Channel Marker
When console output should show one visible label:
```moonbit
let logger = Logger::new(console_sink())
.with_patch(prefix_message("[worker] "))
```
In this example, every emitted message starts with `[worker] `.
#### When Compose With Redaction
When records need both labeling and field protection:
```moonbit
let patch = compose_patches([
prefix_message("[safe] "),
redact_field("token"),
])
```
In this example, message text is rewritten while fields remain independently patchable.
### Error Case
e.g.:
- If `prefix` is empty, the patch behaves like a pass-through message rewrite.
- If several patches prepend text, the final message reflects composition order.
### Notes
1. Prefer this helper over concatenating prefixes at every log call site.
2. Keep prefixes short so they do not drown out the original message text.