Skip to content

Commit e1bb37c

Browse files
committed
add tracing feature
1 parent 6b4c8ca commit e1bb37c

11 files changed

+67
-17
lines changed

Diff for: Cargo.lock

+33
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ serde_derive = "1.0.0"
2626
serde_json = "1.0.0"
2727
slab = "0.4"
2828
tokio = { version = "1.0", features = ["rt", "time"], optional = true }
29+
tracing = { version = "0.1.30", optional = true }
2930

3031
[dev-dependencies]
3132
async-std = { version = "1.9.0", features = ["attributes"] }
@@ -61,6 +62,7 @@ zstd = ["rdkafka-sys/zstd"]
6162
zstd-pkg-config = ["rdkafka-sys/zstd-pkg-config"]
6263
external-lz4 = ["rdkafka-sys/external-lz4"]
6364
external_lz4 = ["rdkafka-sys/external_lz4"]
65+
# tracing, optional dependency
6466

6567
[package.metadata.docs.rs]
6668
# docs.rs doesn't allow writing to ~/.cargo/registry (reasonably), so we have to

Diff for: src/admin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,18 @@ use std::task::{Context, Poll};
1414
use std::thread::{self, JoinHandle};
1515
use std::time::Duration;
1616

17+
use crate::log::{trace, warn};
1718
use futures_channel::oneshot;
1819
use futures_util::future::{self, Either, FutureExt};
1920
use futures_util::ready;
20-
use log::{trace, warn};
2121

2222
use rdkafka_sys as rdsys;
2323
use rdkafka_sys::types::*;
2424

2525
use crate::client::{Client, ClientContext, DefaultClientContext, NativeQueue};
2626
use crate::config::{ClientConfig, FromClientConfig, FromClientConfigAndContext};
2727
use crate::error::{IsError, KafkaError, KafkaResult};
28+
use crate::log::{trace, warn};
2829
use crate::util::{cstr_to_owned, AsCArray, ErrBuf, IntoOpaque, KafkaDrop, NativePtr, Timeout};
2930

3031
//

Diff for: src/client.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@ use std::slice;
2121
use std::string::ToString;
2222
use std::sync::Arc;
2323

24-
use log::{debug, error, info, trace, warn};
25-
2624
use rdkafka_sys as rdsys;
2725
use rdkafka_sys::types::*;
2826

2927
use crate::config::{ClientConfig, NativeClientConfig, RDKafkaLogLevel};
3028
use crate::consumer::RebalanceProtocol;
3129
use crate::error::{IsError, KafkaError, KafkaResult};
3230
use crate::groups::GroupList;
31+
use crate::log::{debug, error, info, trace, warn};
3332
use crate::metadata::Metadata;
3433
use crate::statistics::Statistics;
3534
use crate::util::{ErrBuf, KafkaDrop, NativePtr, Timeout};

Diff for: src/config.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,12 @@ use std::iter::FromIterator;
2828
use std::os::raw::c_char;
2929
use std::ptr;
3030

31-
use log::{log_enabled, Level};
32-
3331
use rdkafka_sys as rdsys;
3432
use rdkafka_sys::types::*;
3533

3634
use crate::client::ClientContext;
3735
use crate::error::{IsError, KafkaError, KafkaResult};
36+
use crate::log::{log_enabled, LogLevel};
3837
use crate::util::{ErrBuf, KafkaDrop, NativePtr};
3938

4039
/// The log levels supported by librdkafka.
@@ -286,11 +285,11 @@ impl Extend<(String, String)> for ClientConfig {
286285

287286
/// Return the log level
288287
fn log_level_from_global_config() -> RDKafkaLogLevel {
289-
if log_enabled!(target: "librdkafka", Level::Debug) {
288+
if log_enabled!(target: "librdkafka", LogLevel::Debug) {
290289
RDKafkaLogLevel::Debug
291-
} else if log_enabled!(target: "librdkafka", Level::Info) {
290+
} else if log_enabled!(target: "librdkafka", LogLevel::Info) {
292291
RDKafkaLogLevel::Info
293-
} else if log_enabled!(target: "librdkafka", Level::Warn) {
292+
} else if log_enabled!(target: "librdkafka", LogLevel::Warn) {
294293
RDKafkaLogLevel::Warning
295294
} else {
296295
RDKafkaLogLevel::Error

Diff for: src/consumer/base_consumer.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ use std::os::raw::c_void;
77
use std::ptr;
88
use std::sync::Arc;
99

10-
use log::trace;
11-
1210
use rdkafka_sys as rdsys;
1311
use rdkafka_sys::types::*;
1412

@@ -22,6 +20,7 @@ use crate::consumer::{
2220
};
2321
use crate::error::{IsError, KafkaError, KafkaResult};
2422
use crate::groups::GroupList;
23+
use crate::log::trace;
2524
use crate::message::{BorrowedMessage, Message};
2625
use crate::metadata::Metadata;
2726
use crate::topic_partition_list::{Offset, TopicPartitionList};

Diff for: src/consumer/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@ use std::ptr;
44
use std::sync::Arc;
55
use std::time::Duration;
66

7-
use log::{error, trace};
8-
97
use rdkafka_sys as rdsys;
108
use rdkafka_sys::types::*;
119

1210
use crate::client::{Client, ClientContext, NativeClient};
1311
use crate::error::KafkaResult;
1412
use crate::groups::GroupList;
13+
use crate::log::{error, trace};
1514
use crate::message::BorrowedMessage;
1615
use crate::metadata::Metadata;
1716
use crate::topic_partition_list::{Offset, TopicPartitionList};

Diff for: src/consumer/stream_consumer.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use futures_channel::oneshot;
1313
use futures_util::future::{self, Either, FutureExt};
1414
use futures_util::pin_mut;
1515
use futures_util::stream::{Stream, StreamExt};
16-
use log::trace;
16+
use crate::log::trace;
1717
use slab::Slab;
1818

1919
use rdkafka_sys as rdsys;

Diff for: src/lib.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,13 @@
207207
//!
208208
//! ## Debugging
209209
//!
210-
//! rust-rdkafka uses the [`log`] and [`env_logger`] crates to handle logging.
211-
//! Logging can be enabled using the `RUST_LOG` environment variable, for
212-
//! example:
210+
//! rust-rdkafka uses the [`log`] crate to handle logging.
211+
//! Optionally, enable the `tracing` feature to emit [`tracing`]
212+
//! events as opposed to [`log`] records.
213+
//!
214+
//! In test and examples, rust-rdkafka uses the [`env_logger`] crate
215+
//! to format logs. In those contexts, logging can be enabled
216+
//! using the `RUST_LOG` environment variable, for example:
213217
//!
214218
//! ```bash
215219
//! RUST_LOG="librdkafka=trace,rdkafka::client=debug" cargo test
@@ -234,6 +238,7 @@
234238
//! [`StreamConsumer`]: https://docs.rs/rdkafka/*/rdkafka/consumer/stream_consumer/struct.StreamConsumer.html
235239
//! [`ThreadedProducer`]: https://docs.rs/rdkafka/*/rdkafka/producer/base_producer/struct.ThreadedProducer.html
236240
//! [`log`]: https://docs.rs/log
241+
//! [`tracing`]: https://docs.rs/tracing
237242
//! [`env_logger`]: https://docs.rs/env_logger
238243
//! [Apache Kafka]: https://kafka.apache.org
239244
//! [asynchronous processing example]: https://github.com/fede1024/rust-rdkafka/blob/master/examples/asynchronous_processing.rs
@@ -270,6 +275,7 @@ pub mod config;
270275
pub mod consumer;
271276
pub mod error;
272277
pub mod groups;
278+
pub(crate) mod log;
273279
pub mod message;
274280
pub mod metadata;
275281
pub mod producer;

Diff for: src/log.rs

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//! A wrapper module to export logging functionality from
2+
//! [`log`] or [`tracing`] depending on the `tracing` feature.
3+
//!
4+
//! [`log`]: https://docs.rs/log
5+
//! [`tracing`]: https://docs.rs/tracing
6+
7+
#[cfg(not(feature = "tracing"))]
8+
pub(crate) use log::{debug, error, info, log_enabled, trace, warn, Level as LogLevel};
9+
10+
#[cfg(feature = "tracing")]
11+
pub(crate) use tracing::{debug, enabled as log_enabled, error, info, trace, warn};

Diff for: src/util.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
1818
use futures_channel::oneshot;
1919
#[cfg(feature = "naive-runtime")]
2020
use futures_util::future::{FutureExt, Map};
21-
use log::trace;
21+
22+
use crate::log::trace;
2223

2324
use rdkafka_sys as rdsys;
2425

0 commit comments

Comments
 (0)