lightswitch-js-sdk
Version:
light switch javascript sdk
43 lines (42 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LSLogger = void 0;
const types_1 = require("./types");
const LSLogger = (logLevel = types_1.LogLevel.INFO) => ({
debug: (message) => log(types_1.LogLevel.DEBUG, message, logLevel),
info: (message) => log(types_1.LogLevel.INFO, message, logLevel),
warning: (message) => log(types_1.LogLevel.WARNING, message, logLevel),
error: (message) => log(types_1.LogLevel.ERROR, message, logLevel),
});
exports.LSLogger = LSLogger;
const log = (level, message, logLevel) => {
// 사용자가 설정한 로그 수준(logLevel)보다 실제 로그 레벨(level)이 높거나 같은 경우에만 로그를 출력합니다.
if (level >= logLevel) {
const now = new Date();
const milliseconds = now.getMilliseconds().toString().padStart(3, '0'); // 밀리세컨드 값
const timestamp = `${now.toLocaleTimeString('en-US', {
hour12: false,
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
})}.${milliseconds}`;
const prefix = `[${timestamp} LightSwitch ${types_1.LogLevel[level]}] :`;
switch (level) {
case types_1.LogLevel.DEBUG:
console.debug(`${prefix} ${message}`);
break;
case types_1.LogLevel.INFO:
console.log(`${prefix} ${message}`);
break;
case types_1.LogLevel.WARNING:
console.warn(`${prefix} ${message}`);
break;
case types_1.LogLevel.ERROR:
console.error(`${prefix} ${message}`);
break;
default:
console.log(`${prefix} ${message}`);
break;
}
}
};