Как вывести журнал консолей в другой файл в виде обычного текста

Я пытаюсь распечатать результат моего 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, поэтому я буду признателен за дополнительные ответы.

Другие вопросы по тегам