2018-05-05 01:03:37 +03:00
|
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
// Licensed under the MIT License. See License.txt in the project root for license information.
|
|
|
|
|
|
|
|
import { HttpPipelineLogLevel } from "./httpPipelineLogLevel";
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A Logger that can be added to a HttpPipeline. This enables each RequestPolicy to log messages
|
|
|
|
* that can be used for debugging purposes.
|
|
|
|
*/
|
|
|
|
export interface HttpPipelineLogger {
|
|
|
|
/**
|
|
|
|
* The log level threshold for what logs will be logged.
|
|
|
|
*/
|
|
|
|
minimumLogLevel: HttpPipelineLogLevel;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Log the provided message.
|
|
|
|
* @param logLevel The HttpLogDetailLevel associated with this message.
|
|
|
|
* @param message The message to log.
|
|
|
|
*/
|
|
|
|
log(logLevel: HttpPipelineLogLevel, message: string): void;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A HttpPipelineLogger that will send its logs to the console.
|
|
|
|
*/
|
|
|
|
export class ConsoleHttpPipelineLogger implements HttpPipelineLogger {
|
|
|
|
/**
|
|
|
|
* Create a new ConsoleHttpPipelineLogger.
|
|
|
|
* @param minimumLogLevel The log level threshold for what logs will be logged.
|
|
|
|
*/
|
|
|
|
constructor(public minimumLogLevel: HttpPipelineLogLevel) {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Log the provided message.
|
|
|
|
* @param logLevel The HttpLogDetailLevel associated with this message.
|
|
|
|
* @param message The message to log.
|
|
|
|
*/
|
|
|
|
log(logLevel: HttpPipelineLogLevel, message: string): void {
|
2018-05-05 01:30:58 +03:00
|
|
|
const logMessage = `${HttpPipelineLogLevel[logLevel]}: ${message}`;
|
|
|
|
switch (logLevel) {
|
|
|
|
case HttpPipelineLogLevel.ERROR:
|
|
|
|
console.error(logMessage);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case HttpPipelineLogLevel.WARNING:
|
|
|
|
console.warn(logMessage);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case HttpPipelineLogLevel.INFO:
|
|
|
|
console.log(logMessage);
|
|
|
|
break;
|
|
|
|
}
|
2018-05-05 01:03:37 +03:00
|
|
|
}
|
|
|
|
}
|