2011-01-25 15 views
12

Khi tôi làmlàm thế nào để thay đổi các đường ray logger để sử dụng tiêu chuẩn ra khỏi nhiệm vụ cào (rails2)

Rails.logger.debug "hello world" từ bên trong nhiệm vụ cào của tôi, tôi muốn nó để đăng nhập vào tiêu chuẩn ra.

Làm cách nào để đặt trình ghi nhật ký đường ray thành Logger.new (STDOUT) từ trong tác vụ rake của tôi?

Tôi muốn ứng dụng của mình đăng nhập vào tệp khi đến thông qua bộ điều khiển v.v., chỉ muốn các tác vụ rake chuyển sang phần cứng do cách giám sát của tôi được thiết lập. Tôi đã nghĩ rằng tôi có thể định nghĩa một môi trường khác và sử dụng cấu hình đó, nhưng có lẽ quá mức cần thiết, tôi muốn tất cả các môi trường giống nhau trong mỗi env, chỉ muốn thay đổi vị trí đích đăng nhập của tôi.

Hiện tại tôi có trình trợ giúp ghi nhật ký sử dụng lệnh đặt, nhưng tôi muốn tận dụng định dạng của nhật ký đường ray và bộ đệm.

Trả lời

6

Bạn có thể thiết lập lại các logger mặc định theo cách này:

 
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) 

Bạn cũng có thể thiết lập các logger cho các bộ phận cụ thể của ứng dụng của bạn (ActiveRecord, ActionController ...) như thế này:

 
ActiveRecord::Base.logger = Logger.new(STDOUT) 
+0

Cố gắng này và nhận được: /lib/tasks/fetch_influencers.rake:4: năng động liên tục phân RAILS_DEFAULT_LOGGER = Logger.new (STDOUT) (Tôi nghĩ rằng giải pháp của bạn hoạt động trong rails3, tôi cần một rails2 giải pháp) – Joelio

+0

Đó có phải là cảnh báo hoặc lỗi không? Bạn sẽ nhận được một cảnh báo nếu bạn làm điều này bởi vì bạn đang thay đổi một hằng số, nhưng bạn vẫn có thể làm điều đó. –

+1

lib/tasks/fetch_data.rake: 4: gán hằng số động RAILS_DEFAULT_LOGGER = Logger.new (STDOUT) – Joelio

9

Tôi chỉ làm Rails.logger = Logger.new(STDOUT) và cũng đã hoạt động (ray3)

0

Với đường ray 4 bạn sẽ sử dụng gem rails_12factor. Đặt cái này vào Gemfile và voilà! đá quý 'rails_12factor_'

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