2009-06-18 36 views
44

Một thành viên trong nhóm của tôi đang phát triển ứng dụng Rails trên Windows XP. Chúng tôi nhận thấy rằng khi chúng tôi chạy ứng dụng, hoặc khởi chạy nó trong NetBeans hoặc bằng cách mở một giao diện điều khiển và gọi số script/server, nhật ký phát triển Rails không cuộn theo. Chỉ có thông báo khởi động Webrick. Ứng dụng chắc chắn đang chạy, nhưng khi chúng tôi nhấn các trang khác nhau trong trình duyệt, chúng tôi không thấy bất kỳ đầu ra ghi nhật ký nào.Làm thế nào chúng ta có thể xem nhật ký phát triển Rails?

Khi tôi nhìn vào ứng dụng giống hệt nhau trên hệ điều hành OS X của tôi, quá trình ghi nhật ký hoạt động như mong đợi.

Tôi đã đảm bảo rằng nó đang chạy trong môi trường "phát triển" của Rails.

Mọi ý tưởng tại sao nhật ký sẽ bị chặn?

Có tham số cấu hình nào cho tệp environment.rb có ảnh hưởng đến nó không?

+8

ý tưởng tồi để sử dụng cửa sổ. – bmalets

Trả lời

99

Tìm trong thư mục log/ - phải có một development.log. Tôi đặt cược đầu ra của bạn là có.

Nếu không, hãy đảm bảo rằng thư mục đó có thể ghi được.

Để biết cách xem trong khi bạn đang chạy: nếu bạn đã cài đặt git bash hoặc một số shell khác như Cygwin, bạn có thể mở vỏ và làm tail -f log/development.log. nó.

+0

Xin chào Sarah! Cảm ơn, yeah, tôi thiết lập anh ta với một cửa sổ giao diện điều khiển Git Bash chạy đuôi -f. Tuy nhiên, nó khiến tôi nhớ rằng Webrick không gửi tất cả các bản ghi đầu ra của Rails đến stdout. Tôi nghĩ điều đó được cho là xảy ra theo mặc định. – Ethan

+0

Vâng, đó là lẻ. Khi tôi chạy kịch bản/máy chủ ruby ​​trong một thư mục (trong git bash, trên XP Pro), tôi thấy đầu ra. Tôi đã thử nó có và không có "ruby", và thậm chí trong cmd.exe. Mỗi lần nó chờ đợi cho đến khi nó có một cửa sổ đầy đủ của đầu ra để sản lượng bất cứ điều gì, mặc dù. Phiên bản nào của Rails/Ruby/WEBrick? Tôi đang sử dụng 2.3.2/1.8.6/1.3.1. –

+0

2.3.2/1.8.6/không chắc chắn về WEBrick - Tôi không có quyền truy cập vào máy XP đó vào lúc này. – Ethan

2

Tôi luôn sử dụng log/development.log để xem nhật ký. Chỉ cần tail -f nó bằng cách sử dụng Cygwin hoặc một cái gì đó.

Có thể môi trường Windows của bạn đang sử dụng WEBrick và môi trường OS X đang sử dụng Mongrel hoặc máy chủ web khác. Tôi đã nhận thấy rằng với một số máy chủ web, đầu ra ghi nhật ký (cũng được) được ghi trực tiếp vào trình bao và với những người khác chỉ được ghi vào các tệp nhật ký.

7

Tài liệu Rails Configuration cho thấy bạn có thể có log_level đặt thành một thứ khác ngoài :debug trong cấu hình của bạn.

Ngoài ra còn có một nơi thay thế để xem các yêu cầu: tệp log/development.log trong ứng dụng Rails của bạn. Nếu không có gì được viết ở đó, thì vấn đề của bạn phải được cấu hình. Trên hệ thống * nix tôi sẽ chạy:

$ tail -f log/development.log 

Và xem các yêu cầu do. Họ nói với tôi rằng có một số Windows version of tail.

1

Nếu không đào sâu vào nguồn cho Webrick, tôi nghi ngờ rằng lượng thông tin được hiển thị theo mặc định không lớn. Bạn có chắc chắn rằng bạn đang chạy Webrick trên OSX và không phải là Mongrel?

Thực tế, có lý do cụ thể nào để tiếp tục sử dụng Webrick không? Trước khi ra đời của Phusion Passenger, Mongrel đã trở thành máy chủ front-end de facto và nó hoạt động tốt trên Windows. Nếu bạn cài đặt nó (gem install mongrel) thì Rails sẽ sử dụng nó theo mặc định.

Trong môi trường phát triển của tôi, chạy Webrick (sau khi tôi đã tìm ra cách - đã lâu rồi) Tôi nhận được kết quả rất ngắn gọn: chỉ cần ghi lại yêu cầu "GET". Chuyển sang Mongrel, tôi nhận được toàn bộ tác phẩm: yêu cầu, tham số, SQL, thời gian, vv ..

+0

Cảm ơn bạn. Điều đó thực sự hữu ích. Có, trên máy OS X của tôi chạy Mongrel. Hệ thống XP của đồng nghiệp của tôi đang chạy Webrick. Tôi sẽ thử cài đặt Mongrel ở đó. – Ethan

2

Netbeans dường như ngừng hiển thị nhật ký dev trong cửa sổ bảng điều khiển khi nhật ký dev quá lớn.Ít nhất đó là kinh nghiệm của tôi.

6
less -R log/development.log 

Tôi mới bắt đầu sử dụng tính năng này.

3

Hãy thử điều này, để có được log phát triển:

tail -f log/development.log 

Hãy chắc chắn rằng bạn đang ở trong con đường ứng dụng.

1

tôi sử dụng đuôi với grep

tail -f log/development.log | grep Started -A 1 

trình đẹp mắt.

Các vấn đề liên quan