diff --git a/package.json b/package.json index 75c5eef..d8c1f37 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eppo/js-client-sdk-common", - "version": "4.15.2", + "version": "4.15.3", "description": "Common library for Eppo JavaScript SDKs (web, react native, and node)", "main": "dist/index.js", "files": [ diff --git a/src/application-logger.ts b/src/application-logger.ts index a4ae490..5aa9f9c 100644 --- a/src/application-logger.ts +++ b/src/application-logger.ts @@ -4,8 +4,15 @@ export const loggerPrefix = '[Eppo SDK]'; // Create a Pino logger instance export const logger = pino({ - // eslint-disable-next-line no-restricted-globals - level: process.env.LOG_LEVEL ?? (process.env.NODE_ENV === 'production' ? 'warn' : 'info'), - // https://getpino.io/#/docs/browser - browser: { disabled: true }, + // Use any specified log level, or warn in production/browser, info otherwise + /* eslint-disable no-restricted-globals */ + level: + typeof process !== 'undefined' && process.env.LOG_LEVEL + ? process.env.LOG_LEVEL + : typeof process === 'undefined' || process.env.NODE_ENV === 'production' + ? 'warn' + : 'info', + /* eslint-enable no-restricted-globals */ + + browser: { disabled: true }, // See https://getpino.io/#/docs/browser }); diff --git a/src/client/eppo-client.ts b/src/client/eppo-client.ts index e7d9c6d..5810452 100644 --- a/src/client/eppo-client.ts +++ b/src/client/eppo-client.ts @@ -756,14 +756,14 @@ export default class EppoClient { try { this.logBanditAction(banditEvent); - } catch (err: any) { - logger.error('Error logging bandit event', err); + } catch (err) { + logger.error({ err }, 'Error logging bandit event'); } evaluationDetails.banditAction = action; } } catch (err: any) { - logger.error('Error determining bandit action', err); + logger.error({ err }, 'Error determining bandit action'); if (!this.isGracefulFailureMode) { throw err; } @@ -772,7 +772,7 @@ export default class EppoClient { // Update the flag evaluation code to indicate that evaluationDetails.flagEvaluationCode = 'BANDIT_ERROR'; } - evaluationDetails.flagEvaluationDescription = `Error evaluating bandit action: ${err.message}`; + evaluationDetails.flagEvaluationDescription = `Error evaluating bandit action: ${err?.message}`; } return { variation, action, evaluationDetails }; } @@ -877,7 +877,7 @@ export default class EppoClient { // Record in the assignment cache, if active, to deduplicate subsequent repeat assignments this.banditAssignmentCache?.set(banditAssignmentCacheProperties); } catch (err) { - logger.warn('Error encountered logging bandit action', err); + logger.warn({ err }, 'Error encountered logging bandit action'); } } diff --git a/src/client/eppo-precomputed-client.ts b/src/client/eppo-precomputed-client.ts index 590ed87..1909594 100644 --- a/src/client/eppo-precomputed-client.ts +++ b/src/client/eppo-precomputed-client.ts @@ -519,7 +519,7 @@ export default class EppoPrecomputedClient { // Record in the assignment cache, if active, to deduplicate subsequent repeat assignments this.banditAssignmentCache?.set(banditAssignmentCacheProperties); } catch (err) { - logger.warn('Error encountered logging bandit action', err); + logger.warn({ err }, 'Error encountered logging bandit action'); } } diff --git a/src/events/event-delivery.ts b/src/events/event-delivery.ts index 310afd2..c97161a 100644 --- a/src/events/event-delivery.ts +++ b/src/events/event-delivery.ts @@ -33,8 +33,8 @@ export default class EventDelivery implements IEventDelivery { } else { return { failedEvents: batch }; } - } catch (e: any) { - logger.warn(`Failed to upload event batch`, e); + } catch (err) { + logger.warn({ err }, `Failed to upload event batch`); return { failedEvents: batch }; } }