Я перенаправив мой (не-Rails) ActiveRecord SQL входа в текстовый файл со следующим в моем spec_helper
:Вход рубин выход в виде простого текста без ANSI бежать последовательностей
logfile = File.expand_path('log/test.log')
FileUtils.mkdir_p File.dirname(logfile)
ActiveRecord::Base.logger = Logger.new(logfile) if defined?(ActiveRecord::Base)
Это прекрасно работает, за исключением того, что файл журнала заполнен цветовыми экранами ANSI. Я полагаю, что это функция, если вы читаете это в терминале, но это очень раздражает при просмотре файла в IDE/редактор:
Как я могу построить Logger
, который выводит простой текст?
ETA: И нет, в случае, если вам интересно, старый ActiveRecord::Base.colorize_logging
флаг вы найдете задокументированы все через Интернет для более ранних версий ActiveRecord больше не существует, по-видимому, потому, что предполагалось только Rails разработчиков необходимы текстовые журналы.
/Users/me/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.3/lib/active_record/dyna
mic_matchers.rb:26:in `method_missing': undefined method `colorize_logging='
for ActiveRecord::Base:Class (NoMethodError)
В текущих версиях Rails, который [пошел] (http://guides.rubyonrails.org/configuring.html#configuring-active-record) в пользу [общего] Rails (HTTP : //guides.rubyonrails.org/configuring.html#rails-general-configuration) 'colorize_logging' config. К сожалению, как отмечалось в вопросе, я не использую Rails, и по умолчанию ActiveRecord раскрашивается. –
Кроме того, как уже отмечалось, я не использую Rails. –
О, право - моя ошибка. Я не врывался в источники; но можете ли вы получить дескриптор LogSubscriber, который использует ActiveRecord? –