|
3 | 3 | import * as vscode from 'vscode'; |
4 | 4 |
|
5 | 5 | export enum LogLevel { |
6 | | - Verbose, |
7 | | - Debug, |
8 | | - Normal, |
9 | | - Warning, |
10 | | - Error |
| 6 | + Verbose, |
| 7 | + Debug, |
| 8 | + Normal, |
| 9 | + Warning, |
| 10 | + Error |
11 | 11 | } |
12 | 12 |
|
13 | | -export class Logger { |
14 | | - |
15 | | - private logChannel: vscode.OutputChannel; |
16 | | - |
17 | | - // Minimum log level that is shown to users on logChannel |
18 | | - private minimumUserLogLevel: LogLevel = undefined; |
19 | | - |
20 | | - constructor() { |
21 | | - this.logChannel = vscode.window.createOutputChannel("Puppet"); |
22 | | - |
23 | | - let config = vscode.workspace.getConfiguration('puppet'); |
24 | | - let logLevelName = config['languageclient']['minimumUserLogLevel']; |
25 | | - let logLevel = this.logLevelFromString(logLevelName); |
26 | | - |
27 | | - if(logLevel == undefined) { |
28 | | - this.minimumUserLogLevel = LogLevel.Normal; |
29 | | - this.error("Logger could not interpret " + logLevelName + " as a log level setting"); |
30 | | - } else { |
31 | | - this.minimumUserLogLevel = logLevel; |
32 | | - } |
33 | | - } |
34 | | - |
35 | | - public show(){ |
36 | | - this.logChannel.show(); |
37 | | - } |
38 | | - |
39 | | - public verbose(message: string) { |
40 | | - this.logWithLevel(LogLevel.Verbose, message); |
41 | | - } |
42 | | - |
43 | | - public debug(message: string) { |
44 | | - this.logWithLevel(LogLevel.Debug, message); |
45 | | - } |
46 | | - |
47 | | - public normal(message: string) { |
48 | | - this.logWithLevel(LogLevel.Normal, message); |
49 | | - } |
50 | | - |
51 | | - public warning(message: string) { |
52 | | - this.logWithLevel(LogLevel.Warning, message); |
53 | | - } |
54 | | - |
55 | | - public error(message: string) { |
56 | | - this.logWithLevel(LogLevel.Error, message); |
57 | | - } |
58 | | - |
59 | | - private logWithLevel(level: LogLevel, message) { |
60 | | - let logMessage = this.logLevelPrefixAsString(level) + (new Date().toISOString()) + ' ' + message |
61 | | - |
62 | | - console.log(logMessage); |
63 | | - if (level >= this.minimumUserLogLevel) { |
64 | | - this.logChannel.appendLine(logMessage); |
65 | | - } |
66 | | - } |
67 | | - |
68 | | - private logLevelFromString(logLevelName: String): LogLevel { |
69 | | - switch (logLevelName.toLowerCase()) { |
70 | | - case "verbose": return LogLevel.Verbose; |
71 | | - case "debug": return LogLevel.Debug; |
72 | | - case "normal": return LogLevel.Normal; |
73 | | - case "warning": return LogLevel.Warning; |
74 | | - case "error": return LogLevel.Error; |
75 | | - default: return undefined; |
76 | | - } |
77 | | - } |
78 | | - |
79 | | - private logLevelPrefixAsString(level: LogLevel): String { |
80 | | - switch (level) { |
81 | | - case LogLevel.Verbose: return "VERBOSE: "; |
82 | | - case LogLevel.Debug: return "DEBUG: "; |
83 | | - case LogLevel.Warning: return "WARNING: "; |
84 | | - case LogLevel.Error: return "ERROR: "; |
85 | | - default: return ""; |
86 | | - } |
87 | | - } |
| 13 | +export interface ILogger { |
| 14 | + show(); |
| 15 | + verbose(message: string); |
| 16 | + debug(message: string); |
| 17 | + normal(message: string); |
| 18 | + warning(message: string); |
| 19 | + error(message: string); |
88 | 20 | } |
89 | | - |
0 commit comments