направляющие - вывод консоли Redirecting в файл

На консоли удара, если я делаю это:

cd mydir
ls -l > mydir.txt

> оператор получает стандартный вход и перенаправляет его в файл; таким образом, я вкладываю список файлов mydir.txt вместо в стандартном выводе.

Там какой-либо путь состоит в том, чтобы сделать что-то подобное на консоли направляющих?

У меня есть оператор Ruby, который генерирует большую печать (~8k строки), и я хотел бы смочь видеть его полностью, но консоль только "помнит" последние 1 024 строки или около этого. Таким образом, я думал о перенаправлении в файл - Если кто-либо знает более оптимальный вариант, я внимательно слушаю.

77
задан kikito 17 March 2010 в 10:37
поделиться

3 ответа

Вы можете использовать переопределение $stdout для перенаправления выходных данных консоли:

$stdout = File.new('console.out', 'w')

Вам также может потребоваться вызвать это один раз:

$stdout.sync = true

Это перенаправит все выходные данные в файл. Если вы хотите временно перенаправить выходные данные, убедитесь, что вы храните исходное значение $stdout, чтобы вы могли изменить его обратно.

94
ответ дан 24 November 2019 в 10:46
поделиться

Если вы напишете следующий код в файле окружения, он должен работать.

if "irb" == $0
  config.logger = Logger.new(Rails.root.join('path_to_log_file.txt'))
end

Вы также можете повернуть файл журнала, используя

config.logger = Logger.new(Rails.root.join('path_to_log_file.txt'), number_of_files, file_roation_size_threshold)

Для записи в журнал только активных операций, связанных с записью, вы можете сделать

ActiveRecord::Base.logger = Logger.new(Rails.root.join('path_to_log_file.txt'))

Это также позволяет вам иметь различные конфигурации/файлы журнала для различных сред.

4
ответ дан 24 November 2019 в 10:46
поделиться

Используйте hirb . Он автоматически пролистывает любой вывод в irb, который длиннее одного экрана. Поместите это в консольный сеанс, чтобы увидеть эту работу:

>> require 'rubygems'
>> require 'hirb'
>> Hirb.enable

Подробнее о том, как это работает, прочтите этот пост .

2
ответ дан 24 November 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: