W railsach chcę zapisywać pewne informacje w innym pliku dziennika, a nie w standardowym dzienniku development.log czy production.log. Chcę zrobić to rejestrowanie z klasy modelu.
ruby-on-rails
logging
akszat
źródło
źródło
User.logger = Logger.new(STDOUT)
lub gdziekolwiek chcesz się zalogować. W ten sam sposóbActiveRecord::Base.logger = Logger.new(STDOUT)
zmieni wszystkie rejestracje dla wszystkich modeli.User.logger = Logger.new(STDOUT)
zmienił wszystkie dzienniki dla wszystkich modeli. Cóż, to się zmieniłoActiveRecord::Base.logger
my_logger
wapplication_controller.rb
.Aktualizacja
Klejnot wykonałem w oparciu o poniższe rozwiązanie o nazwie multi_logger . Po prostu zrób to w inicjatorze:
i zadzwoń
i gotowe.
Jeśli chcesz to samodzielnie zakodować, zobacz poniżej:
Bardziej kompletnym rozwiązaniem byłoby umieszczenie następujących elementów w katalogu
lib/
lubconfig/initializers/
.Zaletą jest to, że można skonfigurować program formatujący, aby automatycznie poprzedzał sygnatury czasowe lub ważność w dziennikach. Jest to dostępne z dowolnego miejsca w Railsach i wygląda ładniej dzięki zastosowaniu wzorca singleton.
źródło
#{$$}
?Przyzwoitą opcją, która działa dla mnie, jest po prostu dodanie do twojego
app/models
folderu dość prostej klasy, takiej jakapp/models/my_log.rb
wtedy w twoim kontrolerze lub prawie wszędzie, gdzie możesz odwołać się do klasy modelu z poziomu aplikacji railsowej, tj. gdziekolwiek możesz zrobić
Post.create(:title => "Hello world", :contents => "Lorum ipsum");
lub coś podobnego możesz zalogować się do swojego niestandardowego pliku w ten sposóbźródło
Zdefiniuj klasę rejestratora w (powiedzmy) app / models / special_log.rb:
zainicjuj rejestrator w (powiedzmy) config / initializers / special_log.rb:
W dowolnym miejscu aplikacji możesz zalogować się za pomocą:
źródło
Oto mój niestandardowy rejestrator:
źródło
źródło
Sugerowałbym użycie klejnotu Log4r do niestandardowego logowania. Cytując opis z jego strony:
źródło
źródło
Framework Logging, ze swoją zwodniczo prostą nazwą, ma wyrafinowanie, którego pragniesz!
Postępuj zgodnie z bardzo krótkimi instrukcjami logowania do szyn, aby rozpocząć odfiltrowywanie szumów, otrzymywanie alertów i wybieranie wyników w drobnoziarnisty i wysokopoziomowy sposób.
Gdy skończysz, poklep się po plecach. Codzienne przewijanie dziennika. Warto tylko za to.
źródło