Jak możesz ukryć dane wyjściowe bazy danych w konsoli Railsów?


103

W nowszej wersji Railsów, od 3 wzwyż, zapytania do bazy danych są wysyłane do konsoli. Jest to przydatne przez większość czasu, ale jak możesz to ukryć, jeśli nie chcesz tego oglądać?

Odpowiedzi:


177

Lepszym sposobem na zrobienie tego jest wpisanie tego w konsoli:

ActiveRecord::Base.logger.level = 1 

ponieważ zapobiega problemom podczas próby użycia wskaźnika do loggera, który jest ustawiony na zero (źródło: Wyłącz logowanie Rails SQL w konsoli )

Aby go ponownie włączyć

ActiveRecord::Base.logger.level = 0

31
Dzięki. I włącz go ponownie, ActiveRecord::Base.logger.level = 0.
thebenedict

Masz pomysł, jak to zrobić z Mongoidem?
Jesse Farmer


9

Krótka odpowiedź ... W pliku development.rb zmień lub dodaj wartość config.log_leveltak, aby była taka linia

config.log_level = :info

1
Nie, wydaje się, że nie ma to żadnego wpływu na to, co dzieje się w konsoli. Wolałbym również rozwiązanie, które nie wymaga ode mnie zmiany plików projektu.
Roger Ertesvag

Ok, rozwiązanie działa dla mnie z webrick, ale możesz używać innego serwera lub działać w trybie produkcyjnym lub testowym?
madth3

3
Działa w celu zmiany zawartości plików dziennika. Ale pytanie dotyczy konsoli railsów, a nie plików dziennika.
Roger Ertesvag,

6

Od mojego przyjaciela:

your_query; nil

1
Aby poprawić jakość swojego posta, opisz, jak / dlaczego Twój post rozwiąże problem.
Mick MacCallum

7
To powstrzyma twoją konsolę ruby ​​przed zrzucaniem wyników wyrażeń do konsoli, ale nie powstrzyma ActiveRecord przed zrzucaniem informacji sql do rejestratora railsów.
eremzeit

1
Do poprzednich komentatorów: to odpowiada na pytanie i jest to jedyna odpowiedź, która mi pomogła, czego chcieć więcej?
valk

3
Myślę, że to w ogóle nie odpowiada na pytanie. jak powiedział @eremzeit, nie zatrzyma to wszystkich zapytań sql zrzuconych na konsolę, a jedynie zatrzyma drukowanie wartości zwracanej z tego polecenia ...
opsidao

1
Nie odpowiada na pytanie, ale jest przydatne, aby nie powtarzać wyników
Rutger

4

W Railsach 3.2 ustawienie

config.logger.level = Logger::INFO

działało dobrze dla mnie przy wyłączaniu wyjścia SQL.


Czy to nadal rejestruje dane wyjściowe SQL w pliku dziennika?
Joshua Pinter

-2

Widzę, że otrzymałeś już potrzebną odpowiedź, chociaż chciałbym ci doradzić klejnot „cichych aktywów”, większość danych dziennika będzie dotyczyła kompilacji aktywów i inkluzji, ten klejnot usunie to i nadal wyprowadza zapytania i zachowanie danych.

baw się dobrze


1
Pytanie dotyczy wyjścia na konsolę, a nie plików dziennika
Roger Ertesvag
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.