#ruby-on-rails #ruby
Вопрос:
как регистрировать каждое действие Net::Sftp в файл в ruby on rails для отладки и как я могу подробно записывать::отладку в файл журнала.
sftp = Net::SFTP.start(config[:host], config[:user], config[:options], verbose::debug) files_arr = [] sftp.connect! sftp.dir.foreach(src_dir) do |entry| file_name = entry.name begin if entry.file? amp;amp; (file_name.end_with?(".xml") || file_name.end_with?(".zip")) sftp.download!(File.join(src_dir, file_name), File.join(dest_dir, file_name)) files_arr lt;lt; file_name end rescue Exception =gt; e next end end sftp.channel.eof! sftp.close_channel unless sftp.closed?
моя цель-записать все, что происходит в этом коде, в файл, как я могу это сделать.
Комментарии:
1. Пожалуйста, объясните, что вы на самом деле пытаетесь сделать, с достаточным количеством кода для минимально воспроизводимого примера. В идеале также код, который у вас есть на данный момент, и конкретные ошибки или сбои, с которыми вы сталкиваетесь с ним. Тогда люди смогут дать вам полезные ответы! (FWIW, вы, вероятно , просто хотите
Rails.logger
, чтобы это было записано в/logs
каталог.)2. ДжонП Я отредактировал свой вопрос и добавил пример кода, добавил рельсы. регистратор запишет все в журнал prod, который очень сложно найти, поэтому я хотел записать его в определенный файл.
3. Дело в том, что использование
Rails.logger
в вашем коде всего одной строки гарантирует, что ваши сообщения журнала будут помечены временем, хронологически и последовательно отформатированы. Если вы добавите четкий идентификатор для своих сообщений (например, «MyLogLine: foo»), вы сможете быстро искать их в любом текстовом редакторе. И, если вы хотите иметь подробные журналы, это в значительной степени именно то, для чегоRails.logger
они были разработаны! Кроме того, если вы хотите указать на определенное местоположение файла, вы можете настроитьRails.logger
это. Не изобретайте велосипед, когда у Rails есть готовый для вас.4. да, это именно то, что я хочу, это записать всю информацию из приведенного выше раздела кода в другой файл журнала, а не в стандартный файл development.log или production.log. итак, какова будет конфигурация
Rails.logger
У вас есть пример кода?
Ответ №1:
Следуя комментариям, кажется, что вы хотите определить пользовательский регистратор, который затем можно использовать для записи вашей пользовательской информации в свой собственный файл. Что-то подобное в соответствующем environment.rb
должно делать то, что вам нужно.
my_logger = Logger.new('log/my_logger.log') my_logger.level = Logger::DEBUG
Затем вы можете добавить my_logger 'MESSAGE'
в соответствующие пункты своего кода, чтобы добавить записи в свой пользовательский файл журнала.