Skip to content

Commit 4b2f5dc

Browse files
authored
Merge pull request microsoft#187187 from microsoft/tyriar/187080
Add workspace id to terminal logs
2 parents 968379f + 1391e9a commit 4b2f5dc

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

src/vs/platform/terminal/common/terminalLogService.ts

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,49 @@ import { Event } from 'vs/base/common/event';
88
import { localize } from 'vs/nls';
99
import { ILogger, ILoggerService, LogLevel } from 'vs/platform/log/common/log';
1010
import { ITerminalLogService } from 'vs/platform/terminal/common/terminal';
11+
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
1112

1213
export class TerminalLogService extends Disposable implements ITerminalLogService {
1314
declare _serviceBrand: undefined;
1415
declare _logBrand: undefined;
1516

1617
private readonly _logger: ILogger;
1718

19+
private _workspaceId!: string;
20+
1821
get onDidChangeLogLevel(): Event<LogLevel> { return this._logger.onDidChangeLogLevel; }
1922

20-
constructor(@ILoggerService private readonly _loggerService: ILoggerService) {
23+
constructor(
24+
@ILoggerService private readonly _loggerService: ILoggerService,
25+
@IWorkspaceContextService workspaceContextService: IWorkspaceContextService
26+
) {
2127
super();
2228
this._logger = this._loggerService.createLogger('terminal', { name: localize('terminalLoggerName', 'Terminal') });
29+
this._register(Event.runAndSubscribe(workspaceContextService.onDidChangeWorkspaceFolders, () => {
30+
this._workspaceId = workspaceContextService.getWorkspace().id.substring(0, 7);
31+
}));
2332
}
2433

2534
getLevel(): LogLevel { return this._logger.getLevel(); }
2635
setLevel(level: LogLevel): void { this._logger.setLevel(level); }
27-
trace(message: string, ...args: any[]): void { this._logger.trace(message, args); }
28-
debug(message: string, ...args: any[]): void { this._logger.debug(message, args); }
29-
info(message: string, ...args: any[]): void { this._logger.info(message, args); }
30-
warn(message: string, ...args: any[]): void { this._logger.warn(message, args); }
31-
error(message: string | Error, ...args: any[]): void { this._logger.error(message, args); }
3236
flush(): void { this._logger.flush(); }
37+
38+
trace(message: string, ...args: any[]): void { this._logger.trace(this._formatMessage(message), args); }
39+
debug(message: string, ...args: any[]): void { this._logger.debug(this._formatMessage(message), args); }
40+
info(message: string, ...args: any[]): void { this._logger.info(this._formatMessage(message), args); }
41+
warn(message: string, ...args: any[]): void { this._logger.warn(this._formatMessage(message), args); }
42+
error(message: string | Error, ...args: any[]): void {
43+
if (message instanceof Error) {
44+
this._logger.error(this._formatMessage(''), message, args);
45+
return;
46+
}
47+
this._logger.error(this._formatMessage(message), args);
48+
}
49+
50+
private _formatMessage(message: string): string {
51+
if (this._logger.getLevel() === LogLevel.Trace) {
52+
return `[${this._workspaceId}] ${message}`;
53+
}
54+
return message;
55+
}
3356
}

0 commit comments

Comments
 (0)