Как вывести журнал консолей в другой файл в виде обычного текста
Я пытаюсь распечатать результат моего console.log в другой файл.txt, как бы я это сделал? Вот как выглядит мой console.log: https://imgur.com/o2Vo471
Я хочу, чтобы это печаталось как обычный текст в выходной файл, например 'output.txt'
3 ответа
Я рекомендую использовать Winston для достижения этой цели. Вы можете настроить Winston Transports для вывода в файл winston.add(winston.transports.File, options)
Или, если вы не хотите добавлять какие-либо модули npm в ваше приложение, вы можете просто сделать это
var fs = require('fs');
module.exports = function(text) {
fs.appendFile('output.txt', text + '\n', function (err) {
if (err) throw err;
});
};
И сохраните это в файл в каталоге вашего проекта, например NameOfYourFile.js.
Тогда вы можете просто потребовать это в файле, который вы хотите сделать вывод из
var loger = require('./NameOfYourFile');
loger('Logs');
loger('Output');
loger('Working');
И просто используйте loger вместо console.log. Вы также можете легко переименовать его.
Версия TypeScript
Сначала установите узлы модулей
npm install @types/node --save-dev
Затем создайте файл для вашего модуля, например, NameOfYourFile.ts
import * as fs from 'fs';
export default function(text) {
fs.appendFile('output.txt', text + '\n', function (err) {
if (err) throw err;
});
};
Тогда вы можете импортировать это так
import loger from './NameOfYourFile';
loger('Logs');
loger('Output');
loger('Working');
Можете ли вы переписать вашу программу как приложение узла, а затем просто запустить ее из окна терминала? Тогда вам не нужно будет бороться с этой проблемой получения вывода вашей консоли в файл... вместо этого вы можете использовать fs узла ( Node.js Записать строку в файл.txt)
Этот ответ работает, но это не то, к чему я стремлюсь, это сработает для большинства других людей, которых я бы предположил. ты захочешь запустить свою программу так:
npm start > output.txt
это выведет вывод вашей консоли в файл output.txt. Мне все еще нужно добиться этого с помощью узла fs, поэтому я буду признателен за дополнительные ответы.