mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
76 lines
2.3 KiB
Markdown
76 lines
2.3 KiB
Markdown
---
|
|
name: text-console
|
|
group: api
|
|
category: config
|
|
update-time: 20260520
|
|
description: Create a logger config preset for the built-in text console sink with formatter settings.
|
|
key-word:
|
|
- preset
|
|
- text
|
|
- console
|
|
- public
|
|
---
|
|
|
|
## Text-console
|
|
|
|
Create a `LoggerConfig` preset for text-formatted console output. This helper bundles `SinkKind::TextConsole` together with a `TextFormatterConfig` so config-driven logger assembly can control text rendering without manual `SinkConfig::new(...)` calls.
|
|
|
|
### Interface
|
|
|
|
```moonbit
|
|
pub fn text_console(
|
|
min_level~ : Level = Level::Info,
|
|
target~ : String = "",
|
|
timestamp~ : Bool = false,
|
|
text_formatter~ : TextFormatterConfig = default_text_formatter_config(),
|
|
) -> LoggerConfig {
|
|
```
|
|
|
|
#### input
|
|
|
|
- `min_level : Level` - Minimum enabled level for the preset.
|
|
- `target : String` - Default target stored in the returned config.
|
|
- `timestamp : Bool` - Whether the built logger should emit timestamps.
|
|
- `text_formatter : TextFormatterConfig` - Formatter config used by the text console sink.
|
|
|
|
#### output
|
|
|
|
- `LoggerConfig` - Config using `SinkKind::TextConsole` with the supplied formatter and no queue wrapper by default.
|
|
|
|
### Explanation
|
|
|
|
Detailed rules explaining key parameters and behaviors
|
|
|
|
- This preset always returns `sink.kind=SinkKind::TextConsole`.
|
|
- `text_formatter` is copied into `config.sink.text_formatter`.
|
|
- `queue=None` by default, so buffering remains opt-in through `with_queue(...)`.
|
|
|
|
### How to Use
|
|
|
|
Here are some specific examples provided.
|
|
|
|
#### When Need Customized Human-readable Console Output
|
|
|
|
When console logs should use a specific separator or timestamp display:
|
|
```moonbit
|
|
let formatter = TextFormatterConfig::new(show_timestamp=false, separator=" | ")
|
|
let config = text_console(target="worker", text_formatter=formatter)
|
|
```
|
|
|
|
In this example, the text console sink uses the supplied formatter config.
|
|
|
|
And the preset stays fully compatible with later `build_logger(...)` assembly.
|
|
|
|
### Error Case
|
|
|
|
e.g.:
|
|
- If `target` is empty, the preset still returns a valid config.
|
|
|
|
- If you later apply `with_file_rotation(...)`, the config stays unchanged because this is not a file sink preset.
|
|
|
|
### Notes
|
|
|
|
1. Use this preset instead of `console(...)` when text formatting must be configured explicitly.
|
|
|
|
2. File-only settings such as `path` and `rotation` are not part of this preset.
|