Skip to content

Commit 5ebc004

Browse files
committed
chore: improve logging around extension starting and stopping
1 parent f3bcbca commit 5ebc004

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

src/extension.ts

+38-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,18 @@ import { getMemoryLogger } from "./memoryLogger"
1515

1616
export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
1717
// Initialize the memory logger right when the extension starts.
18-
getMemoryLogger();
18+
const logger = getMemoryLogger();
19+
await logger.initLogFile(ctx.globalStorageUri.fsPath)
20+
21+
// Log initial memory usage and activation
22+
logger.info("CODER extension activating")
23+
logger.logMemoryUsage("EXTENSION_ACTIVATE")
24+
25+
// Register disposal of the logger when the extension deactivates
26+
ctx.subscriptions.push({ dispose: () => logger.dispose() })
27+
28+
// Log extension mode
29+
logger.info(`Extension mode: ${extensionModeToString(ctx.extensionMode)}`);
1930

2031
// The Remote SSH extension's proposed APIs are used to override the SSH host
2132
// name in VS Code itself. It's visually unappealing having a lengthy name!
@@ -29,9 +40,13 @@ export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
2940
vscode.extensions.getExtension("codeium.windsurf-remote-openssh") ||
3041
vscode.extensions.getExtension("ms-vscode-remote.remote-ssh")
3142
if (!remoteSSHExtension) {
43+
logger.error("Remote SSH extension not found, cannot activate Coder extension")
3244
vscode.window.showErrorMessage("Remote SSH extension not found, cannot activate Coder extension")
3345
throw new Error("Remote SSH extension not found")
3446
}
47+
48+
logger.info(`Found Remote SSH extension: ${remoteSSHExtension.id}`);
49+
3550
// eslint-disable-next-line @typescript-eslint/no-explicit-any
3651
const vscodeProposed: typeof vscode = (module as any)._load(
3752
"vscode",
@@ -229,4 +244,26 @@ export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
229244
}
230245
}
231246
}
247+
248+
logger.info("Coder extension activation complete")
249+
}
250+
251+
function extensionModeToString(mode: vscode.ExtensionMode): string {
252+
switch (mode) {
253+
case vscode.ExtensionMode.Development:
254+
return "Development";
255+
case vscode.ExtensionMode.Production:
256+
return "Production";
257+
case vscode.ExtensionMode.Test:
258+
return "Test";
259+
default:
260+
return `Unknown (${mode})`;
261+
}
232262
}
263+
264+
// Add deactivation handler to log memory usage on extension shutdown
265+
export function deactivate(): void {
266+
const logger = getMemoryLogger();
267+
logger.info("Coder extension deactivating");
268+
logger.logMemoryUsage("EXTENSION_DEACTIVATE");
269+
}

0 commit comments

Comments
 (0)