@beenotung/tslib
Version:
utils library in Typescript
49 lines (48 loc) • 1.45 kB
JavaScript
;
/**
* for Node.js
* */
Object.defineProperty(exports, "__esModule", { value: true });
exports.genLogFilename = genLogFilename;
exports.wrapConsoleLog = wrapConsoleLog;
function to2Dig(n) {
if (n < 10) {
return '0' + n;
}
return n.toString();
}
function genLogFilename(name = 'log', ext = 'txt') {
const d = new Date();
const dateText = [
d.getFullYear(),
to2Dig(d.getMonth() + 1),
to2Dig(d.getDate()),
'-',
to2Dig(d.getHours()),
to2Dig(d.getMinutes()),
to2Dig(d.getSeconds()),
].join('');
return [name, dateText, ext].join('.');
}
function formatLog(args) {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const util = require('util');
return util.format.apply(null, args);
}
function wrapConsoleLog(filename = genLogFilename()) {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// Or 'w' to truncate the file every time the process starts.
const logFile = fs.createWriteStream(filename, { flags: 'a' });
// eslint-disable-next-line no-console
console.log = function () {
const text = formatLog(arguments) + '\n';
logFile.write(text);
process.stdout.write(text);
};
console.error = function () {
const text = formatLog(arguments) + '\n';
logFile.write(text);
process.stderr.write(text);
};
}