mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-07-24 00:42:18 +00:00
3.0 KiB
3.0 KiB
BitLogger
BitLogger is a structured logging library for MoonBit projects.
Overview
BitLogger gives you consistent levels, targets, structured fields, configurable text output, native file logging, and an async logging layer.
Quick Start
let logger = build_logger(
text_console(
min_level=Level::Info,
target="demo",
text_formatter=TextFormatterConfig::new(show_timestamp=false, separator=" | "),
),
)
logger.info("starting", fields=[field("port", "8080")])
ignore(logger.flush())
Start with console(...), json_console(...), text_console(...), or file(...), then add with_queue(...) or with_file_rotation(...) only when needed.
Use Logger::new(...) when you want to assemble custom sink graphs directly.
Support Status
- Current local verification covers
native,js,wasm, andwasm-gcfor the mainsrcpackage andsrc-async llvmis still treated as experimental in the current release context and was not locally re-verified in the current environment- The source packages still declare
wasmsupport alongsidenative,llvm,js, andwasm-gc; seetarget-verification.mdfor the current release-facing verification boundary - File output is a native capability; check
native_files_supported()in cross-target code src-asyncis available, whileexamples/async_basicis still shipped as a native entry example
Main Features
- Structured logs with levels, targets, messages, and fields
- Multiple outputs: console, JSON console, text console, and file
- Custom text formatting with templates, style tags, and color control
- Config-based builders:
build_logger(...)andbuild_async_logger(...) - Composition helpers: queue, filter, patch, fanout, split, callback
- Separate async package under
src-async
Examples
examples/console_basic/: minimal console and JSON console exampleexamples/text_formatter/: text formatting and template exampleexamples/style_tags/: style tags and colored output exampleexamples/config_build/: config-based build exampleexamples/presets/: common preset combinationsexamples/file_rotation/: native file logging and rotation exampleexamples/async_basic/: async logging example
Documentation
- API index: canonical API reference, organized as one public API per file
- src package README: package-level usage notes and target reminders
docs/changes/: versioned release notes and publish-facing change summariesdocs/dev/: developer reference material kept in the repository, intentionally excluded from the public static docs site
Common entry points: text_console(...), file(...), with_queue(...), build_logger(...), build_async_logger(...)