Skip to content

Commit 109031f

Browse files
ChrisAldersonindexzero
authored andcommittedJun 12, 2018
[fix] Update level property to change transport level #1191 (#1328)
* [fix] Update level property to change transport level #1191 * [test] Add a test case for Logger level setting transports level * [test] tiny change in testcase for Logger level setting transports level * [refactor test] Remove need for getter and setter now that we check a live reference to the parent in `winston-transport`. Refactor the test to ensure that `"pipe"` has been handled by the child before proceeding. * [dist] Bump to `winston-transport@4.2.0`
1 parent 4c301eb commit 109031f

File tree

3 files changed

+44
-5
lines changed

3 files changed

+44
-5
lines changed
 

‎package-lock.json

+5-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"readable-stream": "^2.3.6",
2929
"stack-trace": "0.0.x",
3030
"triple-beam": "^1.3.0",
31-
"winston-transport": "^4.0.0"
31+
"winston-transport": "^4.2.0"
3232
},
3333
"devDependencies": {
3434
"@types/node": "^9.6.6",

‎test/logger.test.js

+38
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,44 @@ describe('Logger (levels)', function () {
319319
.add(filterLevelTransport('ok'))
320320
.log(expected);
321321
});
322+
323+
it('sets transports levels', done => {
324+
let logger;
325+
const transport = new TransportStream({
326+
log(obj) {
327+
if (obj.level === 'info') {
328+
assume(obj).equals(undefined, 'Transport on level info should never be called');
329+
}
330+
331+
assume(obj.message).equals('foo');
332+
assume(obj.level).equals('error');
333+
assume(obj[MESSAGE]).equals(JSON.stringify({ message: 'foo', level: 'error' }));
334+
done();
335+
}
336+
});
337+
338+
// Begin our test in the next tick after the pipe event is
339+
// emitted from the transport.
340+
transport.once('pipe', () => setImmediate(() => {
341+
const expectedError = { message: 'foo', level: 'error' };
342+
const expectedInfo = { message: 'bar', level: 'info' };
343+
344+
assume(logger.error).is.a('function');
345+
assume(logger.info).is.a('function');
346+
347+
// Set the level
348+
logger.level = 'error';
349+
350+
// Log the messages. "info" should never arrive.
351+
logger
352+
.log(expectedInfo)
353+
.log(expectedError);
354+
}));
355+
356+
logger = winston.createLogger({
357+
transports: [transport]
358+
});
359+
});
322360
});
323361

324362
describe('Logger (stream semantics)', function () {

0 commit comments

Comments
 (0)