2012-09-01 29 views
7

Cách tắt ghi nhật ký cho ActionController :: RoutingError Lỗi?
Tệp nhật ký sản xuất của tôi có đầy đủ bot tìm kiếm phpMyAdmin và các nội dung khác.
Sau đó, các lỗi ứng dụng thực sự bị bỏ qua.
Vui lòng trợ giúp. Tôi đang chạy Rails 3.2 và Passenger.Dừng ghi nhật ký ActionController :: RoutingError Rails 3.2

Trong routes.rb của tôi, tôi ánh xạ tất cả các url khác đến get ":code" => "shared#code" và sau đó, nếu không tìm thấy, tôi sẽ hiển thị trang có thông báo. Nhưng khi bot tìm kiếm các url như http://mywebsite.com/phpMyAdmin/index.php, trang lỗi cổ điển được hiển thị "Trang bạn đang tìm kiếm không tồn tại". Đó là ok. Nhưng tôi chỉ không muốn đăng nhập các lỗi này trong tệp nhật ký.

Trả lời

18

Điều mà nhật ký/hiển thị lỗi là phần mềm trung gian ActionDispatch::DebugExceptions. Bạn chỉ có thể ghi đè phương pháp log_error, ví dụ như gắn thẻ này trong trình khởi tạo:

class ActionDispatch::DebugExceptions 
    alias_method :old_log_error, :log_error 
    def log_error(env, wrapper) 
    if wrapper.exception.is_a? ActionController::RoutingError 
     return 
    else 
     old_log_error env, wrapper 
    end 
    end 
end 
+0

Cảm ơn sự giúp đỡ của bạn. Nhưng tôi có thể hỏi bạn, ở đâu, tôi nên đặt cái này ở đâu? Tôi có nghĩa là tập tin và thư mục. –

+0

initialisers sống trong config/initializers –

+0

Nó hoạt động, cảm ơn rất nhiều! –

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