@wdio/logger 5.7.8 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/node.js CHANGED
@@ -19,7 +19,9 @@ var _stripAnsi = _interopRequireDefault(require("strip-ansi"));
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- const DEFAULT_LEVEL = 0;
22
+ _loglevelPluginPrefix.default.reg(_loglevel.default);
23
+
24
+ const DEFAULT_LEVEL = 'trace';
23
25
  const COLORS = {
24
26
  error: 'red',
25
27
  warn: 'yellow',
@@ -96,7 +98,7 @@ _loglevel.default.methodFactory = function (methodName, logLevel, loggerName) {
96
98
  });
97
99
  const logText = (0, _stripAnsi.default)(`${_util.default.format.apply(this, args)}\n`);
98
100
 
99
- if (logFile) {
101
+ if (logFile && logFile.writable) {
100
102
  /**
101
103
  * empty logging cache if stuff got logged before
102
104
  */
@@ -139,18 +141,54 @@ function getLogger(name) {
139
141
  loggers[name].setLevel(logLevel);
140
142
  return loggers[name];
141
143
  }
144
+ /**
145
+ * Wait for writable stream to be flushed.
146
+ * Calling this prevents part of the logs in the very env to be lost.
147
+ */
148
+
149
+
150
+ getLogger.waitForBuffer = async () => new Promise(resolve => {
151
+ if (logFile && Array.isArray(logFile.writableBuffer) && logFile.writableBuffer.length !== 0) {
152
+ return setTimeout(async () => {
153
+ await getLogger.waitForBuffer(resolve);
154
+ resolve();
155
+ }, 20);
156
+ }
157
+
158
+ resolve(true);
159
+ });
142
160
 
143
161
  getLogger.setLevel = (name, level) => loggers[name].setLevel(level);
144
162
 
145
- getLogger.setLogLevelsConfig = (logLevels = {}) => {
163
+ getLogger.setLogLevelsConfig = (logLevels = {}, wdioLogLevel = DEFAULT_LEVEL) => {
164
+ /**
165
+ * set log level
166
+ */
167
+ if (process.env.WDIO_LOG_LEVEL === undefined) {
168
+ process.env.WDIO_LOG_LEVEL = wdioLogLevel;
169
+ }
170
+
146
171
  logLevelsConfig = {};
147
- Object.keys(logLevels).forEach(loggerName => {
148
- const logLevelName = getLogLevelName(loggerName);
149
- logLevelsConfig[logLevelName] = logLevels[loggerName];
172
+ /**
173
+ * build logLevelsConfig object
174
+ */
150
175
 
151
- if (loggers[loggerName]) {
152
- loggers[loggerName].setLevel(logLevelsConfig[logLevelName]);
153
- }
176
+ Object.entries(logLevels).forEach(([logName, logLevel]) => {
177
+ const logLevelName = getLogLevelName(logName);
178
+ logLevelsConfig[logLevelName] = logLevel;
179
+ });
180
+ /**
181
+ * set log level for each logger
182
+ */
183
+
184
+ Object.keys(loggers).forEach(logName => {
185
+ const logLevelName = getLogLevelName(logName);
186
+ /**
187
+ * either apply log level from logLevels object or use global logLevel
188
+ */
189
+
190
+ const logLevel = typeof logLevelsConfig[logLevelName] !== 'undefined' ? logLevelsConfig[logLevelName] : process.env.WDIO_LOG_LEVEL;
191
+ loggers[logName].setLevel(logLevel);
154
192
  });
155
193
  };
156
194
 
package/build/web.js CHANGED
@@ -22,4 +22,6 @@ function getLogger(component) {
22
22
 
23
23
  getLogger.setLevel = () => {};
24
24
 
25
- getLogger.setLogLevelsConfig = () => {};
25
+ getLogger.setLogLevelsConfig = () => {};
26
+
27
+ getLogger.waitForBuffer = () => {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/logger",
3
- "version": "5.7.8",
3
+ "version": "5.11.0",
4
4
  "description": "A helper utility for logging of WebdriverIO packages",
5
5
  "author": "Christian Bromann <christian@saucelabs.com>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-logger",
@@ -32,11 +32,11 @@
32
32
  "dependencies": {
33
33
  "chalk": "^2.3.0",
34
34
  "loglevel": "^1.6.0",
35
- "loglevel-plugin-prefix": "^0.5.3",
36
- "strip-ansi": "^4.0.0"
35
+ "loglevel-plugin-prefix": "^0.8.4",
36
+ "strip-ansi": "^5.2.0"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "gitHead": "d96a4a8a313b7fd855f102af6198c60cf8475b8e"
41
+ "gitHead": "f235de6d9876a1a81bc1007430346d493ba7f579"
42
42
  }