feat: add Rotation, Sampling, Tagging, FieldExtract, Replay modules + tests
纯 MoonBit 实现的结构化日志与追踪库。
moon add clf060328/MoonLogTrace
let logger = Logger::new() .level(Level::INFO) .console() .build() let l2 = logger.info("Server started", [("port", "8080")]) let l3 = l2.warn("Disk space low", [("free_gb", "2.3")]) // Span tracing let (l4, span) = Span::enter(l3, "process", [("id", "42")]) let l5 = span.exit(l4) let all_logs = l5.logs()
Logger::new()
.level(l)
.console()
.console_json()
.add_context(k, v)
.build()
.trace(msg, fields)
.debug(msg, fields)
.info(msg, fields)
.warn(msg, fields)
.error(msg, fields)
.logs()
.log_count()
Span::enter(logger, name, fields) -> (Logger, Span)
span.exit(logger) -> Logger
LoggerConfig::new().set_level(l).enable_console().build_logger()
create_dev_logger()
create_prod_logger()
create_test_logger()
format_text(record)
format_json(record)
format_color(record)
format_compact(record)
format_csv(record)
format_pattern(record, "{t} [{l}] {m}")
format_logfmt(record)
format_xml(record)
format_ndjson(record)
Counter::new(name).increment().add(n).read()
Timer::start(name, seq).stop(current_seq)
Histogram::new(name).record(v).avg().min_val().max_val()
Apache-2.0
纯 MoonBit 结构化日志与追踪库,支持5级过滤、11种格式化器、Span追踪、RequestContext、Pipeline中间件、批量日 志、Counter/Timer/Histogram统计、EventMeter/RateLimiter、Syslog/GELF格式、日志分流路由,零依赖
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MoonLogTrace
纯 MoonBit 实现的结构化日志与追踪库。
功能
安装
快速开始
API
Logger
Logger::new().level(l).console().console_json().add_context(k, v).build().trace(msg, fields).debug(msg, fields).info(msg, fields).warn(msg, fields).error(msg, fields).logs().log_count()Span
Span::enter(logger, name, fields) -> (Logger, Span)span.exit(logger) -> LoggerLoggerConfig
LoggerConfig::new().set_level(l).enable_console().build_logger()create_dev_logger()/create_prod_logger()/create_test_logger()格式化器
format_text(record)/format_json(record)/format_color(record)format_compact(record)/format_csv(record)format_pattern(record, "{t} [{l}] {m}")format_logfmt(record)/format_xml(record)/format_ndjson(record)统计
Counter::new(name).increment().add(n).read()Timer::start(name, seq).stop(current_seq)Histogram::new(name).record(v).avg().min_val().max_val()许可证
Apache-2.0