Простая и идеальная регистрация в Синатре

Я просмотрел несколько блогов и сайтов, которые дали мне некоторую информацию о том, как войти в систему synatra, но не работали для моего приложения, а также я прошел через драгоценный камень под названием sinatra-logger не пробовал, хотел знать идеальный и простой способ "войти" в синатра. Как и logger.info для рельсов.

Код, который я пробовал и не работал, находится со следующего сайта ссылка, а также некоторые из ссылок SO слишком указывали на тот же подход в приведенной выше ссылке.

configure do
 LOGGER = Logger.new("sinatra.log")
end
helpers do
 def logger
 LOGGER
 end
end

Я написал это в app.rb моего приложения, он не говорит undefined метод `configure 'для App: Module

Полезны любые указатели или руководство. Спасибо.

редактирует Right Теперь я использую запись файла для записи моих ошибок и сообщений:

File.open('log.txt', 'a') do |f|
 f.write "#{status}-#{CONFIG.api_url}-#{data.inspect}-tweet}"
end
2 ответа

Если вы используете Sinatra 1.3, вы можете регистрироваться так же, как в рельсах с помощью logger.info

Скопировано из Sinatra Readme:

Вход

В области запроса помощник журнала обнаруживает экземпляр Logger:

get '/' do
 logger.info "loading data"
 # ...
end

Этот регистратор автоматически учитывает настройки ведения учетных записей стойки. Если ведение журнала отключено, этот метод вернет фиктивный объект, поэтому вам не придется беспокоиться о своих маршрутах и ​​фильтрах.

Обратите внимание, что ведение журнала разрешено только для Sinatra:: Application по умолчанию, поэтому, если вы наследуете Sinatra:: Base, вы, вероятно, захотите включить его самостоятельно:

class MyApp < Sinatra::Base
 configure :production, :development do
 enable :logging
 end
 end

Чтобы избежать установки промежуточного программного обеспечения протоколирования, установите для параметра ведения журнала значение nil. Однако имейте в виду, что регистратор в этом случае возвращает нуль. Обычный вариант использования - это когда вы хотите установить свой собственный регистратор. Sinatra будет использовать все, что найдет в env ['rack.logger'].

Rack:: CommonLogger создает сообщения журнала внутри (я думаю).


Смотрите мое предложение здесь: Вход в Синатру?

Однако, это звучит из вашего вопроса, так как проблема заключается в том, что приложение является модулем.

ваш основной класс Sinatra должен быть примерно таким:

class App < Sinatra::Base

в отличие от

module App < Sinatra::Base

Убедитесь, что вы определили его как класс и эта ошибка должна исчезнуть.

licensed under cc by-sa 3.0 with attribution.