Crates.io | tracing-aliyun-sls |
lib.rs | tracing-aliyun-sls |
version | 0.2.0 |
source | src |
created_at | 2024-03-31 09:17:28.857304 |
updated_at | 2024-03-31 14:24:13.488987 |
description | A tracing layer for aliyun sls |
homepage | |
repository | https://github.com/lightsing/tracing-aliyun-sls |
max_upload_size | |
id | 1191560 |
size | 44,002 |
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 the Logger
for log
crate.derive-key
: enable the ability to derive the shard key (128 bits hex) from any string using BLAKE3.rustls
: By default, it enables reqwest/default-tls
,
if you want to use rustls
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();
}