Как я могу войти и отладить в более старом приложении Sinatra API? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть этот старый простой Sinatra API.Это версия 1.4.8.Это очень просто, и это будет переписано.В краткосрочной перспективе мне нужно добавить к нему несколько отладочных операторов, чтобы что-то исправить.Я просто отправляю их в STDOUT, чтобы посмотреть их в реальном времени на экране.

Я видел, что регистратор был включен в версию 1.3, но я не могу найти хорошую страницу учебника о том, какреализовать это.Мне не нужен сложный класс регистрации.Максимум, что я когда-либо хотел бы сделать, это просто войти в файл.Есть ли простой способ сделать что-либо из этого без значительных временных затрат?

1 Ответ

1 голос
/ 31 марта 2019

Я нашел эту страницу , которая очень хорошо описывает процесс.

Этот блок кода содержит мои изменения:

::Logger.class_eval { alias :write :'<<' }
access_log = ::File.join(::File.dirname(::File.expand_path(__FILE__)),'log','access.log')
$access_logger = ::Logger.new(access_log)
$error_logger = ::File.new(::File.join(::File.dirname(::File.expand_path(__FILE__)),'log','error.log'),"a+")
$error_logger.sync = true

configure :development do
  $access_logger.level = Logger::DEBUG
  use ::Rack::CommonLogger, $access_logger
end

configure :production do
  $access_logger.level = Logger::WARN
  use ::Rack::CommonLogger, $access_logger
end  

Я только что изменил уровень ведения журнала для разработчиков и производства. Я также превратил регистраторы в переменные, к которым я могу получить доступ из других частей моего кода.

Так что для моего основного модуля API я могу вывести содержимое переменных или что-нибудь еще с помощью этого:

$access_logger.debug "subscription_id is #{subscription_id}."

Отлично работает!

...