У меня есть приложение Sinatra, которое выводит постоянный поток информации в STDOUT через экземпляр Logger. Я также включил ведение журнала Sinatra и регистрацию в стойке. Для аргументации скажем, что это хорошая идея.Как получить SInatra и Rack для вывода на экземпляр Logger?
Вот что результат выглядит на данный момент:
[2016-03-03 11:32:38] INFO WEBrick 1.3.1
[2016-03-03 11:32:38] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-03-03 11:32:38] INFO WEBrick::HTTPServer#start: pid=12303 port=4567
[03/03/16 11:32:45] core/lib/registry.rb INFO Resolving request for u:/swingshift/registry a:GET
[03/03/16 11:32:45] core/lib/registry.rb INFO SwingShift::RegistryController has been selected...
10.192.0.136 - - [03/Mar/2016:11:32:45 +0000] "GET /swingshift/registry HTTP/1.1" 200 10227 0.0557
10.192.0.136 - - [03/Mar/2016:11:32:46 +0000] "GET /css/bootstrap.min.css HTTP/1.1" 304 - 0.0023
Как вы можете видеть, это немного беспорядок. Я хотел бы сказать Синатре и Стойку использовать мой экземпляр Логгера, а не их собственные.
- Как заставить Sinatra использовать мой регистратор?
- Как получить стойку для использования моего регистратора?
(С другой стороны, я могу передать процедурный к их лесорубов форматировать их же? Это не так хорошо, но это было бы что-то.)
Вот эти мои настройки Sinatra блок. На данный момент $ регистраторе уже указывает на мой экземпляр Logger:
configure do
$logger.info(__FILE__){"Starting..."}
set :bind, '0.0.0.0'
enable :sessions
set :session_secret, 'whatever'
set :views, BASEDIR
set :haml, :layout_options => { :views => 'core/views' }
enable :logging
set :dump_errors, true
end
Я также получил
use Rack::CommonLogger, $logger
... но это, кажется, не делать ничего.
Update :: Я знаю https://stackoverflow.com/questions/2239240A/use-rackcommonlogger-in-sinatra, но:
- Это не касается Синатры протоколирования, просто Rack
- Принятый ответ представляется чрезвычайно сложным и существует целый ряд без ответа моменты, поднятые в комментариях к нему. (Мне действительно нужно, чтобы установить регистратор в config.ru и добавить промежуточный слой протоколирования ли? Является ли синтаксис для лесозаготовительного слоя неправильно, а> = 4-х человека, кажется, думает?)
Согласно Sinatra I» м должен быть способен управлять стойкой из своего блока settings
. Разве это не так?
Обновление 2: Теперь у меня есть правильный вариант решения другого вопроса. Реализация его как есть ... абсолютно ничего для журнала здесь.
Возможный дубликат [Использование Rack :: CommonLogger в Синатры] (http://stackoverflow.com/questions/2239240/use- rackcommonlogger-in-sinatra) – Anthony