@wdio/logger 5.6.4 → 5.9.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 +65 -12
- package/build/web.js +3 -1
- package/package.json +2 -2
package/build/node.js
CHANGED
|
@@ -19,7 +19,7 @@ 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 =
|
|
22
|
+
const DEFAULT_LEVEL = 'trace';
|
|
23
23
|
const COLORS = {
|
|
24
24
|
error: 'red',
|
|
25
25
|
warn: 'yellow',
|
|
@@ -27,6 +27,11 @@ const COLORS = {
|
|
|
27
27
|
debug: 'green',
|
|
28
28
|
trace: 'cyan'
|
|
29
29
|
};
|
|
30
|
+
const matches = {
|
|
31
|
+
COMMAND: 'COMMAND',
|
|
32
|
+
DATA: 'DATA',
|
|
33
|
+
RESULT: 'RESULT'
|
|
34
|
+
};
|
|
30
35
|
const SERIALIZERS = [{
|
|
31
36
|
/**
|
|
32
37
|
* display error stack
|
|
@@ -37,19 +42,19 @@ const SERIALIZERS = [{
|
|
|
37
42
|
/**
|
|
38
43
|
* color commands blue
|
|
39
44
|
*/
|
|
40
|
-
matches: log => log ===
|
|
45
|
+
matches: log => log === matches.COMMAND,
|
|
41
46
|
serialize: log => _chalk.default.magenta(log)
|
|
42
47
|
}, {
|
|
43
48
|
/**
|
|
44
49
|
* color data yellow
|
|
45
50
|
*/
|
|
46
|
-
matches: log => log ===
|
|
51
|
+
matches: log => log === matches.DATA,
|
|
47
52
|
serialize: log => _chalk.default.yellow(log)
|
|
48
53
|
}, {
|
|
49
54
|
/**
|
|
50
55
|
* color result cyan
|
|
51
56
|
*/
|
|
52
|
-
matches: log => log ===
|
|
57
|
+
matches: log => log === matches.RESULT,
|
|
53
58
|
serialize: log => _chalk.default.cyan(log)
|
|
54
59
|
}];
|
|
55
60
|
const loggers = {};
|
|
@@ -67,6 +72,18 @@ _loglevel.default.methodFactory = function (methodName, logLevel, loggerName) {
|
|
|
67
72
|
if (!logFile && process.env.WDIO_LOG_PATH) {
|
|
68
73
|
logFile = _fs.default.createWriteStream(process.env.WDIO_LOG_PATH);
|
|
69
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* split `prefixer: value` sting to `prefixer: ` and `value`
|
|
77
|
+
* so that SERIALIZERS can match certain string
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
const match = Object.values(matches).filter(x => args[0].endsWith(`: ${x}`))[0];
|
|
82
|
+
|
|
83
|
+
if (match) {
|
|
84
|
+
const prefixStr = args.shift().slice(0, -match.length - 1);
|
|
85
|
+
args.unshift(prefixStr, match);
|
|
86
|
+
}
|
|
70
87
|
|
|
71
88
|
args = args.map(arg => {
|
|
72
89
|
for (const s of SERIALIZERS) {
|
|
@@ -79,7 +96,7 @@ _loglevel.default.methodFactory = function (methodName, logLevel, loggerName) {
|
|
|
79
96
|
});
|
|
80
97
|
const logText = (0, _stripAnsi.default)(`${_util.default.format.apply(this, args)}\n`);
|
|
81
98
|
|
|
82
|
-
if (logFile) {
|
|
99
|
+
if (logFile && logFile.writable) {
|
|
83
100
|
/**
|
|
84
101
|
* empty logging cache if stuff got logged before
|
|
85
102
|
*/
|
|
@@ -122,18 +139,54 @@ function getLogger(name) {
|
|
|
122
139
|
loggers[name].setLevel(logLevel);
|
|
123
140
|
return loggers[name];
|
|
124
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Wait for writable stream to be flushed.
|
|
144
|
+
* Calling this prevents part of the logs in the very env to be lost.
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
getLogger.waitForBuffer = async () => new Promise(resolve => {
|
|
149
|
+
if (logFile && Array.isArray(logFile.writableBuffer) && logFile.writableBuffer.length !== 0) {
|
|
150
|
+
return setTimeout(async () => {
|
|
151
|
+
await getLogger.waitForBuffer(resolve);
|
|
152
|
+
resolve();
|
|
153
|
+
}, 20);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
resolve(true);
|
|
157
|
+
});
|
|
125
158
|
|
|
126
159
|
getLogger.setLevel = (name, level) => loggers[name].setLevel(level);
|
|
127
160
|
|
|
128
|
-
getLogger.setLogLevelsConfig = (logLevels = {}) => {
|
|
161
|
+
getLogger.setLogLevelsConfig = (logLevels = {}, wdioLogLevel = DEFAULT_LEVEL) => {
|
|
162
|
+
/**
|
|
163
|
+
* set log level
|
|
164
|
+
*/
|
|
165
|
+
if (process.env.WDIO_LOG_LEVEL === undefined) {
|
|
166
|
+
process.env.WDIO_LOG_LEVEL = wdioLogLevel;
|
|
167
|
+
}
|
|
168
|
+
|
|
129
169
|
logLevelsConfig = {};
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
170
|
+
/**
|
|
171
|
+
* build logLevelsConfig object
|
|
172
|
+
*/
|
|
133
173
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
174
|
+
Object.entries(logLevels).forEach(([logName, logLevel]) => {
|
|
175
|
+
const logLevelName = getLogLevelName(logName);
|
|
176
|
+
logLevelsConfig[logLevelName] = logLevel;
|
|
177
|
+
});
|
|
178
|
+
/**
|
|
179
|
+
* set log level for each logger
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
Object.keys(loggers).forEach(logName => {
|
|
183
|
+
const logLevelName = getLogLevelName(logName);
|
|
184
|
+
/**
|
|
185
|
+
* either apply log level from logLevels object or use global logLevel
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
const logLevel = typeof logLevelsConfig[logLevelName] !== 'undefined' ? logLevelsConfig[logLevelName] : process.env.WDIO_LOG_LEVEL;
|
|
189
|
+
loggers[logName].setLevel(logLevel);
|
|
137
190
|
});
|
|
138
191
|
};
|
|
139
192
|
|
package/build/web.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/logger",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.9.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",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "6339dc411df997530375eda47b8a4b735bcd6c2c"
|
|
42
42
|
}
|