tia
Version:
Time is All (logs driven test engine with ExtJs support)
45 lines (36 loc) • 1.07 kB
text/typescript
import * as _ from 'lodash';
const funcs = ['error', 'warn', 'info', 'verbose', 'debug', 'silly'];
/**
*
* @param prefix - to add to the first argument.
*/
export default function winstonMock(prefix: string) {
let allowedLevel: number;
const logger: any = {};
const userStrLevel = process.env.LOG_LEVEL;
if (userStrLevel) {
allowedLevel = funcs.indexOf(userStrLevel);
if (allowedLevel === -1) {
throw new Error('Incorrect LOG_LEVEL env var.');
}
} else {
allowedLevel = funcs.length;
}
for (let curLevel = 0; curLevel < funcs.length; curLevel++) {
const func = funcs[curLevel];
logger[func] = (...args: any) => {
const localArgs = _.cloneDeep(args);
if (curLevel <= allowedLevel && localArgs) {
localArgs[0] = prefix + `${func}: ` + localArgs[0];
for (const str of localArgs) {
if (typeof str === 'string') {
gT.l.println(str);
} else {
gT.l.println(gIn.textUtils.valToStr(str));
}
}
}
};
}
return logger;
}