Skip to content

Commit 01afc37

Browse files
committed
Examples: add logging_log example
This example demonstrates usage of `env_logger` to listen to driver logs.
1 parent 5a50a57 commit 01afc37

File tree

3 files changed

+64
-1
lines changed

3 files changed

+64
-1
lines changed

Cargo.lock.msrv

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/Cargo.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ rustyline = "9"
1212
rustyline-derive = "0.6"
1313
scylla = {path = "../scylla", features = ["ssl", "cloud", "chrono", "time", "num-bigint-03", "num-bigint-04", "bigdecimal-04"]}
1414
tokio = {version = "1.1.0", features = ["full"]}
15-
tracing = "0.1.25"
15+
tracing = { version = "0.1.25" , features = ["log"] }
1616
tracing-subscriber = { version = "0.3.14", features = ["env-filter"] }
1717
chrono = { version = "0.4", default-features = false }
1818
time = { version = "0.3.22" }
@@ -21,6 +21,7 @@ tower = "0.4"
2121
stats_alloc = "0.1"
2222
clap = { version = "3.2.4", features = ["derive"] }
2323
rand = "0.8.5"
24+
env_logger = "0.10"
2425

2526
[[example]]
2627
name = "auth"
@@ -34,6 +35,10 @@ path = "basic.rs"
3435
name = "logging"
3536
path = "logging.rs"
3637

38+
[[example]]
39+
name = "logging_log"
40+
path = "logging_log.rs"
41+
3742
[[example]]
3843
name = "tls"
3944
path = "tls.rs"

examples/logging_log.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
use anyhow::Result;
2+
use scylla::transport::session::Session;
3+
use scylla::SessionBuilder;
4+
use std::env;
5+
use tracing::info;
6+
7+
// To run this example, and view logged messages, RUST_LOG env var needs to be set
8+
// This can be done using shell command presented below
9+
// RUST_LOG=info cargo run --example logging_log
10+
#[tokio::main]
11+
async fn main() -> Result<()> {
12+
// Driver uses `tracing` for logging purposes, but it's possible to use `log`
13+
// ecosystem to view the messages. This requires adding `tracing` crate to
14+
// dependencies and enabling its "log" feature. Then you will be able to use
15+
// loggers like `env_logger` to see driver's messages.
16+
env_logger::init();
17+
18+
let uri = env::var("SCYLLA_URI").unwrap_or_else(|_| "127.0.0.1:9042".to_string());
19+
info!("Connecting to {}", uri);
20+
21+
let session: Session = SessionBuilder::new().known_node(uri).build().await?;
22+
session.query("CREATE KEYSPACE IF NOT EXISTS examples_ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1}", &[]).await?;
23+
24+
session.query("USE examples_ks", &[]).await?;
25+
26+
Ok(())
27+
}

0 commit comments

Comments
 (0)