Skip to content

Commit fac575f

Browse files
committed
feat: enhance logger
1 parent c92a5bc commit fac575f

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

src/logger/index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,11 @@ function factroy(log, opts = {}) {
288288
if (alias) {
289289
return target.getMethod(alias);
290290
}
291-
return log[prop];
291+
const item = log[prop];
292+
if (_.isFunction(item)) {
293+
return item.bind(log);
294+
}
295+
return item;
292296
},
293297
set(target, prop, value) {
294298
log[prop] = value;
@@ -297,7 +301,13 @@ function factroy(log, opts = {}) {
297301
});
298302
}
299303

300-
module.exports = factroy(npmlog, { customFormat: Object.entries(format) });
304+
function createInstance() {
305+
return factroy(npmlog, { customFormat: Object.entries(format) });
306+
}
307+
308+
module.exports = createInstance();
309+
310+
module.exports.createInstance = createInstance;
301311

302312
module.exports.getStdoutMethod = getStdoutMethod;
303313

src/logger/logger.test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,14 @@ describe('Logger', () => {
9292
newLogger.info('abcdef', 'sdd');
9393
});
9494

95+
it('logger createInstance', () => {
96+
const { createInstance } = require('.');
97+
const newLogger = createInstance();
98+
newLogger.info('createInstance', 'pause...');
99+
newLogger.pause();
100+
newLogger.info('createInstance', 'new...');
101+
newLogger.resume();
102+
newLogger.info('createInstance', 'resume...');
103+
});
104+
95105
});

test/stringifyObject.spec.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use strict';
2+
3+
/* global expect */
4+
5+
const { stringifyObject } = require('../');
6+
7+
describe('stringifyObject', () => {
8+
9+
it('require', () => {
10+
const pretty = stringifyObject({
11+
abc: '123',
12+
cc: function abc() {
13+
return 'cc';
14+
},
15+
cbc: Symbol('fff'),
16+
}, {
17+
indent: ' ',
18+
singleQuotes: false,
19+
});
20+
console.info(pretty);
21+
});
22+
23+
});

0 commit comments

Comments
 (0)