Skip to content

Commit ea1757d

Browse files
authored
chore: added sprintf in logger (#181)
## Summary Fixed logging message in the logger, added sprintf in utils. ## Test plan All unit tests and Integration tests pass. ## Ticket [OASIS-8220](https://optimizely.atlassian.net/browse/OASIS-8220)
1 parent 8fafb3c commit ea1757d

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/logger.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,20 @@
1515
*/
1616

1717
import * as optimizely from '@optimizely/optimizely-sdk';
18+
import { sprintf } from './utils';
1819
const logHandler = optimizely.logging.createLogger({ prefix: '[React-SDK]' });
1920

2021
export const logger = {
2122
warn: (msg: string, ...splat: any[]) => {
22-
// @ts-ignore
23-
return logHandler.log(optimizely.enums.LOG_LEVEL.WARNING, msg, ...splat);
23+
return logHandler.log(optimizely.enums.LOG_LEVEL.WARNING, sprintf(msg, ...splat));
2424
},
2525
info: (msg: string, ...splat: any[]) => {
26-
// @ts-ignore
27-
return logHandler.log(optimizely.enums.LOG_LEVEL.INFO, msg, ...splat);
26+
return logHandler.log(optimizely.enums.LOG_LEVEL.INFO, sprintf(msg, ...splat));
2827
},
2928
debug: (msg: string, ...splat: any[]) => {
30-
// @ts-ignore
31-
return logHandler.log(optimizely.enums.LOG_LEVEL.DEBUG, msg, ...splat);
29+
return logHandler.log(optimizely.enums.LOG_LEVEL.DEBUG, sprintf(msg, ...splat));
3230
},
3331
error: (msg: string, ...splat: any[]) => {
34-
// @ts-ignore
35-
return logHandler.log(optimizely.enums.LOG_LEVEL.ERROR, msg, ...splat);
32+
return logHandler.log(optimizely.enums.LOG_LEVEL.ERROR, sprintf(msg, ...splat));
3633
},
3734
};

src/utils.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,17 @@ export function createFailedDecision(flagKey: string, message: string, user: Use
145145
};
146146
}
147147

148+
export function sprintf(format: string, ...args: any[]): string {
149+
let i = 0;
150+
return format.replace(/%s/g, () => {
151+
const arg = args[i++];
152+
const type = typeof arg;
153+
if (type === 'function') {
154+
return arg();
155+
} else if (type === 'string') {
156+
return arg;
157+
} else {
158+
return String(arg);
159+
}
160+
});
161+
}

0 commit comments

Comments
 (0)