mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-03 23:06:49 +01:00
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { LogLevel as MsalLogLevel } from '@azure/msal-node';
|
|
import { env, LogLevel, LogOutputChannel } from 'vscode';
|
|
|
|
export class MsalLoggerOptions {
|
|
piiLoggingEnabled = false;
|
|
|
|
constructor(private readonly _output: LogOutputChannel) { }
|
|
|
|
get logLevel(): MsalLogLevel {
|
|
return this._toMsalLogLevel(env.logLevel);
|
|
}
|
|
|
|
loggerCallback(level: MsalLogLevel, message: string, containsPii: boolean): void {
|
|
if (containsPii) {
|
|
// TODO: Should we still log the message if it contains PII? It's just going to
|
|
// an output channel that doesn't leave the machine.
|
|
this._output.debug('Skipped logging message because it may contain PII');
|
|
return;
|
|
}
|
|
|
|
// Log to output channel one level lower than the MSAL log level
|
|
switch (level) {
|
|
case MsalLogLevel.Error:
|
|
this._output.error(message);
|
|
return;
|
|
case MsalLogLevel.Warning:
|
|
this._output.warn(message);
|
|
return;
|
|
case MsalLogLevel.Info:
|
|
this._output.debug(message);
|
|
return;
|
|
case MsalLogLevel.Verbose:
|
|
this._output.trace(message);
|
|
return;
|
|
case MsalLogLevel.Trace:
|
|
// Do not log trace messages
|
|
return;
|
|
default:
|
|
this._output.debug(message);
|
|
return;
|
|
}
|
|
}
|
|
|
|
private _toMsalLogLevel(logLevel: LogLevel): MsalLogLevel {
|
|
switch (logLevel) {
|
|
case LogLevel.Trace:
|
|
return MsalLogLevel.Trace;
|
|
case LogLevel.Debug:
|
|
return MsalLogLevel.Verbose;
|
|
case LogLevel.Info:
|
|
return MsalLogLevel.Info;
|
|
case LogLevel.Warning:
|
|
return MsalLogLevel.Warning;
|
|
case LogLevel.Error:
|
|
return MsalLogLevel.Error;
|
|
default:
|
|
return MsalLogLevel.Info;
|
|
}
|
|
}
|
|
}
|