MCPcopy Create free account
hub / github.com/deepnote/vscode-deepnote / OutputChannelLogger

Class OutputChannelLogger

src/platform/logging/outputChannelLogger.ts:9–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7import format from 'format-util';
8
9export class OutputChannelLogger implements ILogger {
10 private readonly homeReplaceRegEx?: RegExp;
11 private readonly userNameReplaceRegEx?: RegExp;
12 constructor(
13 private readonly channel: OutputChannel,
14 homeRegEx?: RegExp,
15 userNameRegEx?: RegExp
16 ) {
17 this.homeReplaceRegEx = homeRegEx;
18 this.userNameReplaceRegEx = userNameRegEx;
19 }
20 private format(level: string | undefined, message: string, ...data: Arguments) {
21 let logMessage = level
22 ? `${getTimeForLogging()} [${level}] ${format(message, ...data)}`
23 : format(message, ...data);
24 if (this.homeReplaceRegEx) {
25 logMessage = logMessage.replace(this.homeReplaceRegEx, '~');
26 }
27 if (this.userNameReplaceRegEx) {
28 logMessage = logMessage.replace(this.userNameReplaceRegEx, '<username>');
29 }
30 return logMessage;
31 }
32
33 public error(message: string, ...data: Arguments): void {
34 this.channel.appendLine(this.format('error', message, ...data));
35 }
36
37 public warn(message: string, ...data: Arguments): void {
38 this.channel.appendLine(this.format('warn', message, ...data));
39 }
40
41 public info(message: string, ...data: Arguments): void {
42 this.channel.appendLine(this.format('info', message, ...data));
43 }
44
45 public debug(message: string, ...data: Arguments): void {
46 this.channel.appendLine(this.format('debug', message, ...data));
47 }
48
49 public trace(message: string, ...data: Arguments): void {
50 this.channel.appendLine(this.format('trace', message, ...data));
51 }
52 // eslint-disable-next-line @typescript-eslint/no-explicit-any
53 public ci(_message: any, ..._data: Arguments): void {
54 //
55 }
56}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected