2013-03-04 26 views
7

Używam Rails 2.3.13 iw moim environments/production.rb mam:szynach production.log plik jest pusty

config.log_level = :info 
RAILS_DEFAULT_LOGGER = SyslogLogger.new('mysite-platform-production') 

Jednak moja log/production.log jest pusty. Dlaczego miałoby to być?

+0

nie jesteś rejestrowanie czegokolwiek? –

+1

Czy nie powinny istnieć przynajmniej te trasy, które zostały trafione w dzienniku? – Shamoon

+0

Czy są odpowiednie uprawnienia do zapisu podane do 'log/production.log'? –

Odpowiedz

8

jesteś uruchamianiu tego SyslogLogger, dzięki czemu rejestrowanie trafi do syslog (w większości przypadków dostępne jako plik w /var/log/syslog w systemach uniksowych), a nie w pliku dziennika. Parametr przekazywany do rejestratora (mysite-platform-production) jest identyfikatorem używanym przez syslog, a nie nazwą pliku.

Jeśli chcesz się zalogować do pliku w katalogu dziennika, trzeba skonfigurować rejestrator następująco:

RAILS_DEFAULT_LOGGER = Logger.new('log/production.log') 

ALE: jestem całkiem pewny, że nie mamy do zrobić jawnie, ale to, że odbywa się domyślnie przez szyny, więc proponuję nie tylko ustawienie RAILS_DEFAULT_LOGGER w kodzie i powinieneś dostać logger, który loguje się log/production.log niejawnie ...

+1

Mam 4 różne instancje tego komputera działające i to jest za load balancer AWS - więc nie jestem pewien, gdzie log w ogóle pisze – Shamoon

+0

Rejestrowanie przechodzi do syslog każdego urządzenia. Demon syslog najprawdopodobniej loguje go do pliku (*/var/log/syslog *), ale można go również skonfigurować tak, aby przekazywał go na inną maszynę, na przykład ... Zobacz http://en.wikipedia.org/ wiki/Syslog po więcej informacji o syslog. – severin

+0

Ale wróć do pytania: gdzie chcesz umieścić wpisy w dzienniku? Do pliku w katalogu aplikacji na każdym komputerze? – severin

-1

Biorąc pod uwagę, w jaki sposób ustawić rejestrator, należy znaleźć plik o nazwie „mojawitryna-platform-produkcyjna”, nie production.log, i to będzie w katalogu głównym projektu. Jeśli chcesz go znaleźć w „log/mojawitryna-platformy production.log” trzeba będzie zrobić:

RAILS_DEFAULT_LOGGER = SyslogLogger.new('log/mysite-platform-production.log') 
+2

Logger syslog robi ** nie ** loguje się do pliku, po prostu wysyła logi do lokalnego demona syslog, który sam decyduje, gdzie pisać lub wysyłać logi. Parametr inicjujący rejestratora nie określa ścieżki pliku. –

Powiązane problemy