Files
BitLogger/examples/presets/main.mbt
T
Nanaloveyuki 0cbe25a551 πŸ”Š Update 1.0.0
2026-06-27 10:45:36 +08:00

51 lines
1.3 KiB
MoonBit

///|
fn main {
let config = @lib.with_queue(
@lib.text_console(
min_level=@lib.Level::Info,
target="demo.preset",
text_formatter=@lib.TextFormatterConfig::new(
show_timestamp=false,
separator=" | ",
),
),
max_pending=4,
overflow=@lib.QueueOverflowPolicy::DropOldest,
)
let logger = @lib.build_logger(config)
logger.info("preset logger ready", fields=[@lib.field("kind", "portable")])
logger.info("preset logger queued", fields=[@lib.field("step", "two")])
ignore(logger.flush())
if @lib.native_files_supported() {
let file_config = @lib.with_file_rotation(
@lib.file(
"preset-example.log",
min_level=@lib.Level::Info,
target="demo.preset.file",
auto_flush=true,
),
256,
max_backups=2,
) catch {
err => {
ignore(err)
println("invalid file preset config")
return
}
}
let file_logger = @lib.build_logger(file_config)
file_logger.info("file preset ready", fields=[
@lib.field("kind", "native-only"),
])
ignore(file_logger.flush())
ignore(file_logger.file_close())
} else {
println(
"file presets are skipped on this backend because native file support is unavailable",
)
}
}