pi-lens
Version:
Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo
49 lines (46 loc) • 1.31 kB
JavaScript
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
import {
createNdjsonLogger,
getGlobalPiLensLogDir,
getMaxLogSizeMB,
getTurnId,
isTestMode
} from "./chunk-UK3CMEAL.js";
// dist/clients/extension-log.js
import * as path from "node:path";
var EXTENSION_LOG_FILE = path.join(getGlobalPiLensLogDir(), "extension.log");
var writer = createNdjsonLogger({
filePath: EXTENSION_LOG_FILE,
maxBytes: getMaxLogSizeMB() * 1024 * 1024
});
function logExtension(entry) {
if (isTestMode())
return;
writer.log({
ts: (/* @__PURE__ */ new Date()).toISOString(),
pid: process.pid,
turnId: getTurnId(),
level: entry.level ?? "error",
subsystem: entry.subsystem,
message: entry.message,
...entry.metadata ? { metadata: entry.metadata } : {}
});
}
function createSubsystemLogger(subsystem, defaultLevel = "debug") {
const at = (level) => (message, metadata) => {
logExtension({ subsystem, message, level, metadata });
};
const logger = at(defaultLevel);
logger.error = at("error");
logger.warn = at("warn");
logger.debug = at("debug");
return logger;
}
function flushExtensionLog() {
return writer.flush();
}
export {
logExtension,
createSubsystemLogger,
flushExtensionLog
};