UNPKG

@beenotung/tslib

Version:
49 lines (48 loc) 1.45 kB
"use strict"; /** * 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); }; }