1 | "use strict";
|
2 | var chalk = require("chalk");
|
3 | var timestamp = require("time-stamp");
|
4 | var config_1 = require("./config");
|
5 | var colorMap = {
|
6 | "success": "green",
|
7 | "error": "red",
|
8 | "warn": "yellow",
|
9 | "info": "blue"
|
10 | };
|
11 | var levelMap = {
|
12 | "error": 0,
|
13 | "warn": 1,
|
14 | "success": 1,
|
15 | "debug": 2,
|
16 | "info": 3
|
17 | };
|
18 | var configLogLevel = config_1.instance.get("logLevel");
|
19 | if (!configLogLevel) {
|
20 | configLogLevel = "warn";
|
21 | config_1.instance.set("logLevel", configLogLevel);
|
22 | }
|
23 | var Logger = (function () {
|
24 | function Logger() {
|
25 | }
|
26 | Logger.prototype._log = function (level, message, func) {
|
27 | if (levelMap[level] > levelMap[configLogLevel]) {
|
28 | return;
|
29 | }
|
30 | message = message;
|
31 | while (typeof message !== "string") {
|
32 | message = message.message
|
33 | || message.Message
|
34 | || message.error
|
35 | || message.Error
|
36 | || JSON.stringify(message);
|
37 | }
|
38 | var levelMark = level !== "debug" ? chalk[colorMap[level]]("[" + level + "]") : "[" + level + "]";
|
39 | if (levelMap[configLogLevel] > levelMap["warn"]) {
|
40 | levelMark = "[" + timestamp("HH:MM:ss:ms") + "]" + levelMark;
|
41 | }
|
42 | console[func || level](levelMark + " " + message);
|
43 | };
|
44 | Logger.prototype.error = function (message) {
|
45 | this._log("error", message);
|
46 | };
|
47 | Logger.prototype.warn = function (message) {
|
48 | this._log("warn", message);
|
49 | };
|
50 | Logger.prototype.debug = function (message) {
|
51 | this._log("debug", message, "log");
|
52 | };
|
53 | Logger.prototype.info = function (message) {
|
54 | this._log("info", message);
|
55 | };
|
56 | Logger.prototype.success = function (message) {
|
57 | this._log("success", message, "log");
|
58 | };
|
59 | Logger.prototype.shouldSpin = function () {
|
60 | return levelMap[configLogLevel] <= 1;
|
61 | };
|
62 | return Logger;
|
63 | }());
|
64 | exports.Logger = Logger;
|
65 | exports.instance = new Logger();
|