Skip to content

Commit bd22dce

Browse files
James Laishellscape
authored andcommitted
Browser console messages should respect clientLogLevel (#921)
* Implements loglevel npm package, removes native log() method
1 parent 2041b11 commit bd22dce

File tree

2 files changed

+35
-22
lines changed

2 files changed

+35
-22
lines changed

client/index.js

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* global __resourceQuery WorkerGlobalScope */
22
var url = require("url");
33
var stripAnsi = require("strip-ansi");
4+
var log = require("loglevel")
45
var socket = require("./socket");
56
var overlay = require("./overlay");
67

@@ -32,18 +33,16 @@ if(typeof __resourceQuery === "string" && __resourceQuery) {
3233
var hot = false;
3334
var initial = true;
3435
var currentHash = "";
35-
var logLevel = "info";
3636
var useWarningOverlay = false;
3737
var useErrorOverlay = false;
3838

39-
function log(level, msg) {
40-
if(logLevel === "info" && level === "info")
41-
return console.log(msg);
42-
if(["info", "warning"].indexOf(logLevel) >= 0 && level === "warning")
43-
return console.warn(msg);
44-
if(["info", "warning", "error"].indexOf(logLevel) >= 0 && level === "error")
45-
return console.error(msg);
46-
}
39+
var INFO = "info";
40+
var WARNING = "warning";
41+
var ERROR = "error";
42+
var NONE = "none";
43+
44+
// Set the default log level
45+
log.setDefaultLevel(INFO);
4746

4847
// Send messages to the outside, so plugins can consume it.
4948
function sendMsg(type, data) {
@@ -62,22 +61,35 @@ function sendMsg(type, data) {
6261
var onSocketMsg = {
6362
hot: function() {
6463
hot = true;
65-
log("info", "[WDS] Hot Module Replacement enabled.");
64+
log.info("[WDS] Hot Module Replacement enabled.");
6665
},
6766
invalid: function() {
68-
log("info", "[WDS] App updated. Recompiling...");
67+
log.info("[WDS] App updated. Recompiling...");
6968
sendMsg("Invalid");
7069
},
7170
hash: function(hash) {
7271
currentHash = hash;
7372
},
7473
"still-ok": function() {
75-
log("info", "[WDS] Nothing changed.")
74+
log.info("[WDS] Nothing changed.")
7675
if(useWarningOverlay || useErrorOverlay) overlay.clear();
7776
sendMsg("StillOk");
7877
},
7978
"log-level": function(level) {
80-
logLevel = level;
79+
switch(level) {
80+
case INFO:
81+
case ERROR:
82+
log.setLevel(level);
83+
break;
84+
case WARNING:
85+
log.setLevel("warn"); // loglevel's warning name is different from webpack's
86+
break;
87+
case NONE:
88+
log.disableAll();
89+
break;
90+
default:
91+
log.error("[WDS] Unknown clientLogLevel '" + level + "'");
92+
}
8193
},
8294
"overlay": function(overlay) {
8395
if(typeof document !== "undefined") {
@@ -97,37 +109,37 @@ var onSocketMsg = {
97109
reloadApp();
98110
},
99111
"content-changed": function() {
100-
log("info", "[WDS] Content base changed. Reloading...")
112+
log.info("[WDS] Content base changed. Reloading...")
101113
self.location.reload();
102114
},
103115
warnings: function(warnings) {
104-
log("info", "[WDS] Warnings while compiling.");
116+
log.warn("[WDS] Warnings while compiling.");
105117
var strippedWarnings = warnings.map(function(warning) {
106118
return stripAnsi(warning);
107119
});
108120
sendMsg("Warnings", strippedWarnings);
109121
for(var i = 0; i < strippedWarnings.length; i++)
110-
log("warning", strippedWarnings[i]);
122+
log.warn(strippedWarnings[i]);
111123
if(useWarningOverlay) overlay.showMessage(warnings);
112124

113125
if(initial) return initial = false;
114126
reloadApp();
115127
},
116128
errors: function(errors) {
117-
log("info", "[WDS] Errors while compiling. Reload prevented.");
129+
log.error("[WDS] Errors while compiling. Reload prevented.");
118130
var strippedErrors = errors.map(function(error) {
119131
return stripAnsi(error);
120132
});
121133
sendMsg("Errors", strippedErrors);
122134
for(var i = 0; i < strippedErrors.length; i++)
123-
log("error", strippedErrors[i]);
135+
log.error(strippedErrors[i]);
124136
if(useErrorOverlay) overlay.showMessage(errors);
125137
},
126138
error: function(error) {
127-
console.error(error);
139+
log.error(error);
128140
},
129141
close: function() {
130-
log("error", "[WDS] Disconnected!");
142+
log.error("[WDS] Disconnected!");
131143
sendMsg("Close");
132144
}
133145
};
@@ -174,15 +186,15 @@ function reloadApp() {
174186
return;
175187
}
176188
if(hot) {
177-
log("info", "[WDS] App hot update...");
189+
log.info("[WDS] App hot update...");
178190
var hotEmitter = require("webpack/hot/emitter");
179191
hotEmitter.emit("webpackHotUpdate", currentHash);
180192
if(typeof self !== "undefined" && self.window) {
181193
// broadcast update to window
182194
self.postMessage("webpackHotUpdate" + currentHash, "*");
183195
}
184196
} else {
185-
log("info", "[WDS] App updated. Reloading...");
197+
log.info("[WDS] App updated. Reloading...");
186198
self.location.reload();
187199
}
188200
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"jquery": "^2.2.0",
3939
"less": "^2.5.1",
4040
"less-loader": "~2.2.0",
41+
"loglevel": "^1.4.1",
4142
"mocha": "^3.0.2",
4243
"mocha-sinon": "^1.1.6",
4344
"pug": "^2.0.0-beta5",

0 commit comments

Comments
 (0)