Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions launchdarkly-server-sdk/examples/print_flags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use tokio::time;
async fn main() {
env_logger::init_from_env(Env::new().default_filter_or("info"));

info!("Connecting...");
info!(target: "ld-server-sdk::example", "Connecting...");
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same deal here as in the eventsource one. What do we want to prefix this with. The create is launchdarkly-server-sdk. Wasn't sure if we wanted to do the ld thing though since the eventsource one might have to go that way.


let flags: Vec<String> = env::args().skip(1).collect();
let mut bool_flags = Vec::<String>::new();
Expand All @@ -27,7 +27,7 @@ async fn main() {
} else if let ["str", name] = bits {
str_flags.push(name.to_string());
} else if let [flag_type, _] = bits {
error!("Unsupported flag type {} in {}", flag_type, flag);
error!(target: "ld-server-sdk::example", "Unsupported flag type {} in {}", flag_type, flag);
exit(2);
} else if let [name] = bits {
bool_flags.push(name.to_string());
Expand All @@ -36,7 +36,7 @@ async fn main() {
}
}
if bool_flags.is_empty() && str_flags.is_empty() {
error!("Please list some flags to watch.");
error!(target: "ld-server-sdk::example", "Please list some flags to watch.");
exit(1);
}

Expand Down Expand Up @@ -67,6 +67,7 @@ async fn main() {
(Err(_), Err(_), Err(_)) => {}
_ => {
error!(
target: "ld-server-sdk::example",
"Please specify all URLs LAUNCHDARKLY_STREAM_URL,\
LAUNCHDARKLY_EVENTS_URL, and LAUNCHDARKLY_POLLING_URL"
);
Expand All @@ -85,7 +86,7 @@ async fn main() {
.unwrap_or(false); // A timeout (None) can be treated as initialization failure

if !initialized {
error!("The client failed to initialize!");
error!(target: "ld-server-sdk::example", "The client failed to initialize!");
}

loop {
Expand All @@ -95,6 +96,7 @@ async fn main() {
for flag_key in &bool_flags {
let flag_detail = client.bool_variation_detail(context, flag_key, false);
info!(
target: "ld-server-sdk::example",
"context {:?}, flag {}: {:?}",
context.key(),
flag_key,
Expand All @@ -105,6 +107,7 @@ async fn main() {
let flag_detail =
client.str_variation_detail(context, flag_key, "default".to_string());
info!(
target: "ld-server-sdk::example",
"context {:?}, flag {}: {:?}",
context.key(),
flag_key,
Expand Down
1 change: 1 addition & 0 deletions launchdarkly-server-sdk/examples/progress.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ fn main() {
(Err(_), Err(_), Err(_)) => {}
_ => {
error!(
target: "ld-server-sdk::example",
"Please specify all URLs LAUNCHDARKLY_STREAM_URL,\
LAUNCHDARKLY_EVENTS_URL, and LAUNCHDARKLY_POLLING_URL"
);
Expand Down
21 changes: 14 additions & 7 deletions launchdarkly-server-sdk/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ impl Client {
/// Create a new instance of a [Client] based on the provided [Config] parameter.
pub fn build(config: Config) -> Result<Self, BuildError> {
if config.offline() {
info!("Started LaunchDarkly Client in offline mode");
info!(target: "ld-server-sdk", "Started LaunchDarkly Client in offline mode");
}

let tags = config.application_tag();
Expand Down Expand Up @@ -286,7 +286,7 @@ impl Client {
/// return a boolean indicating whether or not the SDK has successfully initialized.
pub async fn wait_for_initialization(&self, timeout: Duration) -> Option<bool> {
if timeout > Duration::from_secs(60) {
warn!("wait_for_initialization was configured to block for up to {} seconds. We recommend blocking no longer than 60 seconds.", timeout.as_secs());
warn!(target: "ld-server-sdk", "wait_for_initialization was configured to block for up to {} seconds. We recommend blocking no longer than 60 seconds.", timeout.as_secs());
}

let initialized = tokio::time::timeout(timeout, self.initialized_async_internal()).await;
Expand Down Expand Up @@ -329,7 +329,7 @@ impl Client {
// channel, so sending on it would always result in an error.
if !self.offline {
if let Err(e) = self.shutdown_broadcast.send(()) {
error!("Failed to shutdown client appropriately: {}", e);
error!(target: "ld-server-sdk", "Failed to shutdown client appropriately: {}", e);
}
}

Expand Down Expand Up @@ -374,6 +374,7 @@ impl Client {
b
} else {
warn!(
target: "ld-server-sdk",
"bool_variation called for a non-bool flag {:?} (got {:?})",
flag_key, val
);
Expand All @@ -394,6 +395,7 @@ impl Client {
s
} else {
warn!(
target: "ld-server-sdk",
"str_variation called for a non-string flag {:?} (got {:?})",
flag_key, val
);
Expand All @@ -414,6 +416,7 @@ impl Client {
f
} else {
warn!(
target: "ld-server-sdk",
"float_variation called for a non-float flag {:?} (got {:?})",
flag_key, val
);
Expand All @@ -434,6 +437,7 @@ impl Client {
f
} else {
warn!(
target: "ld-server-sdk",
"int_variation called for a non-int flag {:?} (got {:?})",
flag_key, val
);
Expand Down Expand Up @@ -578,13 +582,14 @@ impl Client {
) -> FlagDetail {
if self.offline {
warn!(
target: "ld-server-sdk",
"all_flags_detail() called, but client is in offline mode. Returning empty state"
);
return FlagDetail::new(false);
}

if !self.initialized() {
warn!("all_flags_detail() called before client has finished initializing! Feature store unavailable - returning empty state");
warn!(target: "ld-server-sdk", "all_flags_detail() called before client has finished initializing! Feature store unavailable - returning empty state");
return FlagDetail::new(false);
}

Expand Down Expand Up @@ -755,12 +760,14 @@ impl Client {
);
}
Err(e) => error!(
"Failed to build migration event, no event will be sent: {}",
e
),
target: "ld-server-sdk",
"Failed to build migration event, no event will be sent: {}",
e
),
}
}
Err(e) => error!(
target: "ld-server-sdk",
"Failed to lock migration tracker, no event will be sent: {}",
e
),
Expand Down
39 changes: 20 additions & 19 deletions launchdarkly-server-sdk/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl ApplicationInfo {
match tag.is_valid() {
Ok(_) => self.tags.push(tag),
Err(e) => {
warn!("{}", e)
warn!(target: "ld-server-sdk", "{}", e)
}
}

Expand Down Expand Up @@ -269,30 +269,31 @@ impl ConfigBuilder {
Some(_data_store_builder) => self.data_store_builder.unwrap(),
};

let data_source_builder_result: Result<Box<dyn DataSourceFactory>, BuildError> =
match self.data_source_builder {
None if self.offline => Ok(Box::new(NullDataSourceBuilder::new())),
Some(_) if self.offline => {
warn!("Custom data source builders will be ignored when in offline mode");
Ok(Box::new(NullDataSourceBuilder::new()))
}
Some(builder) => Ok(builder),
#[cfg(feature = "rustls")]
None => Ok(Box::new(StreamingDataSourceBuilder::<
hyper_rustls::HttpsConnector<hyper::client::HttpConnector>,
>::new())),
#[cfg(not(feature = "rustls"))]
None => Err(BuildError::InvalidConfig(
"data source builder required when rustls is disabled".into(),
)),
};
let data_source_builder_result: Result<Box<dyn DataSourceFactory>, BuildError> = match self
.data_source_builder
{
None if self.offline => Ok(Box::new(NullDataSourceBuilder::new())),
Some(_) if self.offline => {
warn!(target: "ld-server-sdk", "Custom data source builders will be ignored when in offline mode");
Ok(Box::new(NullDataSourceBuilder::new()))
}
Some(builder) => Ok(builder),
#[cfg(feature = "rustls")]
None => Ok(Box::new(StreamingDataSourceBuilder::<
hyper_rustls::HttpsConnector<hyper::client::HttpConnector>,
>::new())),
#[cfg(not(feature = "rustls"))]
None => Err(BuildError::InvalidConfig(
"data source builder required when rustls is disabled".into(),
)),
};
let data_source_builder = data_source_builder_result?;

let event_processor_builder_result: Result<Box<dyn EventProcessorFactory>, BuildError> =
match self.event_processor_builder {
None if self.offline => Ok(Box::new(NullEventProcessorBuilder::new())),
Some(_) if self.offline => {
warn!("Custom event processor builders will be ignored when in offline mode");
warn!(target: "ld-server-sdk", "Custom event processor builders will be ignored when in offline mode");
Ok(Box::new(NullEventProcessorBuilder::new()))
}
Some(builder) => Ok(builder),
Expand Down
22 changes: 11 additions & 11 deletions launchdarkly-server-sdk/src/data_source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,11 @@ impl DataSource for StreamingDataSource {
let event = match event {
Some(Ok(event)) => match event {
es::SSE::Connected(_) => {
debug!("data source connected");
debug!(target: "ld-server-sdk", "data source connected");
continue;
},
es::SSE::Comment(str)=> {
debug!("data source got a comment: {}", str);
debug!(target: "ld-server-sdk", "data source got a comment: {}", str);
continue;
},
es::SSE::Event(ev) => ev,
Expand All @@ -146,7 +146,7 @@ impl DataSource for StreamingDataSource {
true => continue,
_ => {
notify_init.call_once(|| (init_complete)(false));
warn!("Returned unrecoverable failure. Unexpected response {}", response.status());
warn!(target: "ld-server-sdk", "Returned unrecoverable failure. Unexpected response {}", response.status());
break
}
}
Expand All @@ -157,21 +157,21 @@ impl DataSource for StreamingDataSource {
continue;
}
_ => {
error!("unhandled error on event stream: {:?}", e);
error!(target: "ld-server-sdk", "unhandled error on event stream: {:?}", e);
break;
}
}
},
None => {
error!("unexpected end of event stream");
error!(target: "ld-server-sdk", "unexpected end of event stream");
break;
}
};

let data_store = data_store.clone();
let mut data_store = data_store.write();

debug!("data source got an event: {}", event.event_type);
debug!(target: "ld-server-sdk", "data source got an event: {}", event.event_type);

let stored = match event.event_type.as_str() {
"put" => process_put(&mut *data_store, event),
Expand All @@ -181,7 +181,7 @@ impl DataSource for StreamingDataSource {
};
if let Err(e) = stored {
init_success = false;
error!("error processing update: {:?}", e);
error!(target: "ld-server-sdk", "error processing update: {:?}", e);
}

notify_init.call_once(|| (init_complete)(init_success));
Expand Down Expand Up @@ -223,12 +223,12 @@ impl DataSource for PollingDataSource {
Ok(factory) => match factory.build(self.tags.clone()) {
Ok(requester) => requester,
Err(e) => {
error!("{:?}", e);
error!(target: "ld-server-sdk", "{:?}", e);
return;
}
},
Err(e) => {
error!("{:?}", e);
error!(target: "ld-server-sdk", "{:?}", e);
return;
}
};
Expand All @@ -252,10 +252,10 @@ impl DataSource for PollingDataSource {
notify_init.call_once(|| init_complete(true));
}
Err(FeatureRequesterError::Temporary) => {
warn!("feature requester has returned a temporary failure");
warn!(target: "ld-server-sdk", "feature requester has returned a temporary failure");
}
Err(FeatureRequesterError::Permanent) => {
error!("feature requester has returned a permanent failure");
error!(target: "ld-server-sdk", "feature requester has returned a permanent failure");
notify_init.call_once(|| init_complete(false));
break;
}
Expand Down
16 changes: 8 additions & 8 deletions launchdarkly-server-sdk/src/events/dispatcher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ impl Outbox {
if self.events.len() == self.capacity {
if !self.capacity_exceeded {
self.capacity_exceeded = true;
warn!("Exceeded event queue capacity. Increase capacity to avoid dropping events.");
warn!(target: "ld-server-sdk", "Exceeded event queue capacity. Increase capacity to avoid dropping events.");
}
return;
}
Expand Down Expand Up @@ -108,15 +108,15 @@ impl EventDispatcher {
let rt = match rt {
Ok(rt) => rt,
Err(e) => {
error!("Could not start runtime for event sending: {}", e);
error!(target: "ld-server-sdk", "Could not start runtime for event sending: {}", e);
return;
}
};

let (send, recv) = bounded::<()>(1);

loop {
debug!("waiting for a batch to send");
debug!(target: "ld-server-sdk", "waiting for a batch to send");

loop {
select! {
Expand All @@ -128,7 +128,7 @@ impl EventDispatcher {
},
Ok(_) => continue,
Err(e) => {
error!("event_result_rx is disconnected. Shutting down dispatcher: {}", e);
error!(target: "ld-server-sdk", "event_result_rx is disconnected. Shutting down dispatcher: {}", e);
return;
}
},
Expand Down Expand Up @@ -158,7 +158,7 @@ impl EventDispatcher {
return;
}
Err(e) => {
error!("inbox_rx is disconnected. Shutting down dispatcher: {}", e);
error!(target: "ld-server-sdk", "inbox_rx is disconnected. Shutting down dispatcher: {}", e);
return;
}
}
Expand All @@ -172,7 +172,7 @@ impl EventDispatcher {
if !self.outbox.is_empty() {
let payload = self.outbox.get_payload();

debug!("Sending batch of {} events", payload.len());
debug!(target: "ld-server-sdk", "Sending batch of {} events", payload.len());

let sender = self.events_configuration.event_sender.clone();
let results = event_result_tx.clone();
Expand Down Expand Up @@ -293,11 +293,11 @@ impl EventDispatcher {
let key = context.canonical_key();

if self.context_keys.get(key).is_none() {
trace!("noticing new context {:?}", key);
trace!(target: "ld-server-sdk", "noticing new context {:?}", key);
self.context_keys.put(key.to_owned(), ());
true
} else {
trace!("ignoring already-seen context {:?}", key);
trace!(target: "ld-server-sdk", "ignoring already-seen context {:?}", key);
false
}
}
Expand Down
6 changes: 3 additions & 3 deletions launchdarkly-server-sdk/src/events/processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ impl EventProcessor for EventProcessorImpl {
.is_err()
{
self.inbox_full_once.call_once(|| {
warn!("Events are being produced faster than they can be processed; some events will be dropped")
warn!(target: "ld-server-sdk", "Events are being produced faster than they can be processed; some events will be dropped")
});
}
}
Expand All @@ -91,7 +91,7 @@ impl EventProcessor for EventProcessorImpl {
let (sender, receiver) = bounded::<()>(1);

if self.inbox_tx.send(EventDispatcherMessage::Flush).is_err() {
error!("Failed to send final flush message. Cannot stop event processor");
error!(target: "ld-server-sdk", "Failed to send final flush message. Cannot stop event processor");
return;
}

Expand All @@ -100,7 +100,7 @@ impl EventProcessor for EventProcessorImpl {
.send(EventDispatcherMessage::Close(sender))
.is_err()
{
error!("Failed to send close message. Cannot stop event processor");
error!(target: "ld-server-sdk", "Failed to send close message. Cannot stop event processor");
return;
}

Expand Down
Loading