Enable tracing integration with Aliyun SLS, also support log
crate.
lz4
: enable lz4 compression for logs.deflate
: enable deflate compression for logs.log-comp
: enable theLogger
forlog
crate.derive-key
: enable the ability to derive the shard key (128 bits hex) from any string using BLAKE3.rustls
: By default, it enablesreqwest/default-tls
, if you want to userustls
as the TLS backend, enable this feature also disable default features.
Note: lz4
and deflate
cannot be enabled at the same time.
To use with tracing
:
use tracing_aliyun_sls::SlsLayer;
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
#[tokio::main]
async fn main() {
let (layer, _guard) = SlsLayer::builder()
.access_key("access_key")
.access_secret("access_secret")
.endpoint("cn-hangzhou.log.aliyuncs.com")
.project("project")
.logstore("logstore")
.shard_key("shard_key") // Optional if you want to use `KeyHash` mode
.max_level(tracing::Level::INFO) // Optional, default is `tracing::Level::TRACE`
.drain_timeout(std::time::Duration::from_secs(10)) // Optional, default is 5 seconds
.build_layer();
tracing_subscriber::registry()
.with(layer)
.init();
}
If you want to use it with log
, enable the log-comp
feature:
use tracing_aliyun_sls::SlsLayer;
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
#[tokio::main(flavor = "current_thread")]
async fn main() {
SlsLayer::builder()
.access_key("access_key")
.access_secret("access_secret")
.endpoint("cn-hangzhou.log.aliyuncs.com")
.project("project")
.logstore("logstore")
.shard_key("shard_key") // Optional if you want to use `KeyHash` mode
.max_level(tracing::Level::INFO) // Optional, default is `tracing::Level::TRACE`
.drain_timeout(std::time::Duration::from_secs(10)) // Optional, default is 5 seconds
.build_logger()
.init();
}