/
httpPipelineLogger.ts
55 lines (48 loc) · 1.58 KB
/
httpPipelineLogger.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
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 {
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;
}
}
}