@@ -95,7 +95,8 @@ public LDClient(String sdkKey, LDConfig config) {
9595 } catch (TimeoutException e ) {
9696 logger .error ("Timeout encountered waiting for LaunchDarkly client initialization" );
9797 } catch (Exception e ) {
98- logger .error ("Exception encountered waiting for LaunchDarkly client initialization" , e );
98+ logger .error ("Exception encountered waiting for LaunchDarkly client initialization: {}" , e .toString ());
99+ logger .debug (e .toString (), e );
99100 }
100101 if (!updateProcessor .initialized ()) {
101102 logger .warn ("LaunchDarkly client was not successfully initialized" );
@@ -169,7 +170,8 @@ public Map<String, JsonElement> allFlags(LDUser user) {
169170 result .put (entry .getKey (), evalResult );
170171
171172 } catch (EvaluationException e ) {
172- logger .error ("Exception caught when evaluating all flags:" , e );
173+ logger .error ("Exception caught for feature flag \" {}\" when evaluating all flags: {}" , entry .getKey (), e .toString ());
174+ logger .debug (e .toString (), e );
173175 }
174176 }
175177 return result ;
@@ -209,9 +211,9 @@ public JsonElement jsonVariation(String featureKey, LDUser user, JsonElement def
209211 public boolean isFlagKnown (String featureKey ) {
210212 if (!initialized ()) {
211213 if (featureStore .initialized ()) {
212- logger .warn ("isFlagKnown called before client initialized for feature flag " + featureKey + "; using last known values from feature store" );
214+ logger .warn ("isFlagKnown called before client initialized for feature flag \" {} \ " ; using last known values from feature store" , featureKey );
213215 } else {
214- logger .warn ("isFlagKnown called before client initialized for feature flag " + featureKey + "; feature store unavailable, returning false" );
216+ logger .warn ("isFlagKnown called before client initialized for feature flag \" {} \ " ; feature store unavailable, returning false" , featureKey );
215217 return false ;
216218 }
217219 }
@@ -221,7 +223,8 @@ public boolean isFlagKnown(String featureKey) {
221223 return true ;
222224 }
223225 } catch (Exception e ) {
224- logger .error ("Encountered exception in LaunchDarkly client" , e );
226+ logger .error ("Encountered exception while calling isFlagKnown for feature flag \" {}\" : {}" , e .toString ());
227+ logger .debug (e .toString (), e );
225228 }
226229
227230 return false ;
@@ -230,23 +233,24 @@ public boolean isFlagKnown(String featureKey) {
230233 private JsonElement evaluate (String featureKey , LDUser user , JsonElement defaultValue , VariationType expectedType ) {
231234 if (!initialized ()) {
232235 if (featureStore .initialized ()) {
233- logger .warn ("Evaluation called before client initialized for feature flag " + featureKey + "; using last known values from feature store" );
236+ logger .warn ("Evaluation called before client initialized for feature flag \" {} \ " ; using last known values from feature store" , featureKey );
234237 } else {
235- logger .warn ("Evaluation called before client initialized for feature flag " + featureKey + "; feature store unavailable, returning default value" );
238+ logger .warn ("Evaluation called before client initialized for feature flag \" {} \ " ; feature store unavailable, returning default value" , featureKey );
236239 sendFlagRequestEvent (eventFactory .newUnknownFeatureRequestEvent (featureKey , user , defaultValue ));
237240 return defaultValue ;
238241 }
239242 }
240243
244+ FeatureFlag featureFlag = null ;
241245 try {
242- FeatureFlag featureFlag = featureStore .get (FEATURES , featureKey );
246+ featureFlag = featureStore .get (FEATURES , featureKey );
243247 if (featureFlag == null ) {
244- logger .info ("Unknown feature flag " + featureKey + "; returning default value" );
248+ logger .info ("Unknown feature flag \" {} \ " ; returning default value" , featureKey );
245249 sendFlagRequestEvent (eventFactory .newUnknownFeatureRequestEvent (featureKey , user , defaultValue ));
246250 return defaultValue ;
247251 }
248252 if (user == null || user .getKey () == null ) {
249- logger .warn ("Null user or null user key when evaluating flag: " + featureKey + "; returning default value" );
253+ logger .warn ("Null user or null user key when evaluating flag \" {} \ " ; returning default value" , featureKey );
250254 sendFlagRequestEvent (eventFactory .newDefaultFeatureRequestEvent (featureFlag , user , defaultValue ));
251255 return defaultValue ;
252256 }
@@ -266,10 +270,15 @@ private JsonElement evaluate(String featureKey, LDUser user, JsonElement default
266270 return defaultValue ;
267271 }
268272 } catch (Exception e ) {
269- logger .error ("Encountered exception in LaunchDarkly client" , e );
273+ logger .error ("Encountered exception while evaluating feature flag \" {}\" : {}" , featureKey , e .toString ());
274+ logger .debug (e .toString (), e );
275+ if (featureFlag == null ) {
276+ sendFlagRequestEvent (eventFactory .newUnknownFeatureRequestEvent (featureKey , user , defaultValue ));
277+ } else {
278+ sendFlagRequestEvent (eventFactory .newDefaultFeatureRequestEvent (featureFlag , user , defaultValue ));
279+ }
280+ return defaultValue ;
270281 }
271- sendFlagRequestEvent (eventFactory .newUnknownFeatureRequestEvent (featureKey , user , defaultValue ));
272- return defaultValue ;
273282 }
274283
275284 @ Override
@@ -314,7 +323,8 @@ public String secureModeHash(LDUser user) {
314323 mac .init (new SecretKeySpec (sdkKey .getBytes (), HMAC_ALGORITHM ));
315324 return Hex .encodeHexString (mac .doFinal (user .getKeyAsString ().getBytes ("UTF8" )));
316325 } catch (InvalidKeyException | UnsupportedEncodingException | NoSuchAlgorithmException e ) {
317- logger .error ("Could not generate secure mode hash" , e );
326+ logger .error ("Could not generate secure mode hash: {}" , e .toString ());
327+ logger .debug (e .toString (), e );
318328 }
319329 return null ;
320330 }
0 commit comments