mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
39 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.installLogCapture = installLogCapture;
/**
* logCapture —— 拦截 console 输出灌入日志环形缓冲。
*
* 后端使用裸 `console.log` / `console.error` / `console.warn`,所有输出经
* detached 进程的 stdio 重定向写入 `service.log`。为了让 SSE 日志端点能拿到
* 这些日志,我们在服务器启动早期调用 `installLogCapture()` 一次,包装这三个
* 方法:先推入环形缓冲,再调用原始实现(保留 `service.log` 行为不变)。
*
* 只能安装一次;重复调用安全(返回已有标志)。
*/
const LogRingBuffer_1 = require("./LogRingBuffer");
let installed = false;
/**
* 安装 console 拦截。在进程启动早期调用一次即可。
* 幂等:重复调用不会重复包装。
*/
function installLogCapture() {
if (installed)
return;
installed = true;
const wrap = (level, original) => {
return (...args) => {
try {
LogRingBuffer_1.logRingBuffer.push(level, args);
}
catch {
// 拦截异常不得影响原始日志输出
}
original.apply(console, args);
};
};
console.log = wrap('log', console.log.bind(console));
console.error = wrap('error', console.error.bind(console));
console.warn = wrap('warn', console.warn.bind(console));
}
//# sourceMappingURL=logCapture.js.map