[package]
edition = "2021"
rust-version = "1.75"
name = "log-io"
version = "1.0.0"
authors = ["James Gober <me@jamesgober.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Structured logging pipeline for Rust. Zero-allocation fast path, JSON / logfmt / human-readable outputs, context propagation (request-id, trace-id), per-module filtering, async-safe sinks. An IO pipeline for log records, not a wrapper around log+tracing."
homepage = "https://github.com/jamesgober/log-io"
documentation = "https://docs.rs/log-io"
readme = "README.md"
keywords = [
"logging",
"structured",
"json",
"logfmt",
"telemetry",
]
categories = [
"development-tools::debugging",
"asynchronous",
"no-std",
]
license = "Apache-2.0"
repository = "https://github.com/jamesgober/log-io"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = [
"std",
"json",
"logfmt",
"human",
]
human = []
json = []
logfmt = []
std = []
[lib]
name = "log_io"
path = "src/lib.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
required-features = [
"std",
"human",
]
[[example]]
name = "context"
path = "examples/context.rs"
required-features = [
"std",
"logfmt",
]
[[example]]
name = "custom_format"
path = "examples/custom_format.rs"
required-features = ["std"]
[[example]]
name = "custom_sink"
path = "examples/custom_sink.rs"
required-features = [
"std",
"json",
]
[[example]]
name = "default_fields"
path = "examples/default_fields.rs"
required-features = [
"std",
"json",
]
[[example]]
name = "file_sink"
path = "examples/file_sink.rs"
required-features = [
"std",
"json",
]
[[example]]
name = "filter"
path = "examples/filter.rs"
required-features = [
"std",
"human",
]
[[example]]
name = "json"
path = "examples/json.rs"
required-features = [
"std",
"json",
]
[[example]]
name = "multi_sink"
path = "examples/multi_sink.rs"
required-features = [
"std",
"json",
"human",
]
[[test]]
name = "end_to_end"
path = "tests/end_to_end.rs"
required-features = [
"std",
"json",
"logfmt",
"human",
]
[[test]]
name = "property"
path = "tests/property.rs"
required-features = [
"std",
"json",
"logfmt",
"human",
]
[[test]]
name = "stress"
path = "tests/stress.rs"
required-features = [
"std",
"json",
"logfmt",
"human",
]
[[bench]]
name = "concurrent"
path = "benches/concurrent.rs"
harness = false
required-features = [
"std",
"json",
]
[[bench]]
name = "format"
path = "benches/format.rs"
harness = false
required-features = [
"std",
"json",
"logfmt",
"human",
]
[[bench]]
name = "pipeline"
path = "benches/pipeline.rs"
harness = false
required-features = [
"std",
"json",
"logfmt",
]
[dependencies]
[dev-dependencies.proptest]
version = "1"
features = ["std"]
default-features = false
[profile.release]
opt-level = 3
lto = "thin"