- USB CDC 경로 복원: #define Serial Serial1 우회 제거 - rp2040js/avr8js/codemirror/xterm/monaco-editor vendor화 - /vendor 정적 라우팅 추가 (Express 5 catch-all 우회) - 부팅 완료 타임아웃 감지 (Serial 출력 없어도 8초 후 RAF 전환) - 리셋 시 Simulator 재생성으로 주변 장치 상태 초기화 - 시리얼 패널의 내부 메시지를 console.log로 이동
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
import { formatTime } from './time.js';
|
|
export var LogLevel;
|
|
(function (LogLevel) {
|
|
LogLevel[LogLevel["Debug"] = 0] = "Debug";
|
|
LogLevel[LogLevel["Info"] = 1] = "Info";
|
|
LogLevel[LogLevel["Warn"] = 2] = "Warn";
|
|
LogLevel[LogLevel["Error"] = 3] = "Error";
|
|
})(LogLevel || (LogLevel = {}));
|
|
export class ConsoleLogger {
|
|
constructor(currentLogLevel, throwOnError = true) {
|
|
this.currentLogLevel = currentLogLevel;
|
|
this.throwOnError = throwOnError;
|
|
}
|
|
aboveLogLevel(logLevel) {
|
|
return logLevel >= this.currentLogLevel ? true : false;
|
|
}
|
|
formatMessage(componentName, message) {
|
|
const currentTime = formatTime(new Date());
|
|
return `${currentTime} [${componentName}] ${message}`;
|
|
}
|
|
debug(componetName, message) {
|
|
if (this.aboveLogLevel(LogLevel.Debug)) {
|
|
console.debug(this.formatMessage(componetName, message));
|
|
}
|
|
}
|
|
warn(componetName, message) {
|
|
if (this.aboveLogLevel(LogLevel.Warn)) {
|
|
console.warn(this.formatMessage(componetName, message));
|
|
}
|
|
}
|
|
error(componentName, message) {
|
|
if (this.aboveLogLevel(LogLevel.Error)) {
|
|
console.error(this.formatMessage(componentName, message));
|
|
if (this.throwOnError) {
|
|
throw new Error(`[${componentName}] ${message}`);
|
|
}
|
|
}
|
|
}
|
|
info(componentName, message) {
|
|
if (this.aboveLogLevel(LogLevel.Info)) {
|
|
console.info(this.formatMessage(componentName, message));
|
|
}
|
|
}
|
|
}
|