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.
Start With A Working Flow
The documentation is organized around complete usage flows. Start with an executable logger, then move into file output, configuration, async lifecycle, and extensions. The API reference remains the precise symbol-level reference.
1. Install
moon new log-demo
cd log-demo
moon add Nanaloveyuki/BitLogger@0.7.1
2. Import And Log
Add the package import to your application's moon.pkg:
import {
"Nanaloveyuki/BitLogger/src" @log,
}
fn main {
let logger = @log.build_logger(
@log.console(min_level=@log.Level::Info, target="app"),
)
logger.info("server started", fields=[@log.field("port", "8080")])
}
Continue with the Examples guide: console fields, file rotation, JSON configuration, and async lifecycle are each documented as a complete path.
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
Documentation
- Examples: complete application-facing usage flows
- Extend: queueing, sink composition, formatting, and target boundaries
- 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(...)