Cách tốt nhất/dễ nhất để cấu hình ghi nhật ký mã được lưu trong thư mục lib là gì?Đường ray: Đăng nhập mã trong thư mục lib?
Trả lời
Có hai cách để đi về nó:
Giả sử thư viện của bạn được khép kín và có một mô-đun, bạn có thể thêm một thuộc tính
logger
để mô-đun của bạn và sử dụng ở khắp mọi nơi trong mã thư viện của bạn.Sau đó bạn có thể sử dụng một initializer trong
config/initializers/
, hoặc mộtconfig.after_initialize
khối trongconfig/environment.rb
để khởi logger của bạn, như vậy:require 'mylibrary' MyLibrary.logger = Rails.logger
này vẫn sẽ cho phép bạn sử dụng thư viện khép kín của bạn từ các kịch bản bên ngoài Rails. Đó là tốt đẹp, nhân dịp.
Nếu sử dụng thư viện của bạn mà không có Rails thực sự không có ý nghĩa gì cả, thì bạn cũng có thể chỉ sử dụng trực tiếp
Rails.logger
.
Trong cả hai trường hợp, bạn đang xử lý một Trình ghi nhật ký chuẩn của Ruby. Cũng nên nhớ rằng, về lý thuyết, logger có thể là nil
.
Chúng tôi có thể sử dụng trình ghi nhật ký Rails trực tiếp vào thư viện, xem đoạn mã sau.
require 'logger'
Rails.logger.info "Hay..!!! Im in lib"
Rails.logger.debug "Debugging this object from Lib #{object.inspect}"
Rails.logger.error "This is an error..."
Điều này làm việc cho tôi, cuối cùng, sau khi tôi nhận ra tôi cần phải
- 1. Đường ray: Cách kiểm tra mã trong thư mục lib /?
- 2. Đường ray irb thư mục mặc định
- 3. Nhiều thư mục công cộng, cài đặt đường ray đơn
- 4. Thư mục lib Rails
- 5. Tích hợp đăng nhập facebook với omniauth trên đường ray
- 6. Thư mục Đăng nhập với tư Strings trong python
- 7. Tạo mã QR trong đường ray
- 8. SASS: nhập khẩu bourbon lib từ một thư mục khác trong stylesheets
- 9. asset_url trong thư trên đường ray 3.1
- 10. NuGet Assembly bên ngoài thư mục lib
- 11. Tệp Grails JAR trong thư mục lib không tìm thấy
- 12. Cách sử dụng phương thức trợ giúp tuyến đường từ một tệp trong thư mục lib?
- 13. Rails 3.1: Sass Nhập từ Lib
- 14. không thể module thư mục tải lib - liên tục chưa được khởi tạo - ray 2 đến đường ray 3 nâng cấp
- 15. Cách đăng xuất facebook - sử dụng mã trong ứng dụng đường ray (Ruby on Rails Omniauth)
- 16. PuTTY: Thay đổi thư mục đăng nhập SSH mặc định
- 17. wicked_pdf + đường ray tài sản của đường ray + nhập khẩu sass trong sản xuất
- 18. Đăng nhập bằng ứng dụng đường ray với Devise và token_authenticatable: "401 trái phép"
- 19. Người gửi thư không gửi thư, có đường ray 3
- 20. Cách lấy đường dẫn đến thư mục lib cho gói đã cài đặt
- 21. Đường ray - đường ống nội dung - xác định tài nguyên theo thư mục
- 22. Đường ray 3.1: đường dẫn/url để lưu vào thư mục công khai
- 23. đường ray viết hoa các mục check_box_tag
- 24. Có thể có lỗi đăng nhập đường ray khi gieo hạt
- 25. ruby trên đường ray đăng nhập tập tin lớn -> loại bỏ params từ nó
- 26. Mục nhập đường dẫn lớp bị thiếu trong Eclipse
- 27. Thư mục tuyến đường trong Express
- 28. Thư mục Lib trên bản phân phối OpenSuse 64 bit
- 29. python tải c lib với CDLL, không thấy thư viện trong đường dẫn python
- 30. Đường ray: Bạn đặt mã phi mô hình ở đâu?
Cảm ơn bạn, đây chính xác là những gì tôi đang tìm kiếm. – drt
NB: Câu trả lời này chứa thông tin không chính xác và người chỉnh sửa không muốn tôi sửa chúng. Trừ khi (có lẽ) bạn đang sử dụng Rails cũ hơn 2.0, bạn KHÔNG "đối phó với một bản ghi chuẩn của Ruby". Rails hiện sử dụng [ActiveSupport :: BufferedLogger] (http://apidock.com/rails/ActiveSupport/BufferedLogger). Nếu bạn quyết định khởi tạo trình ghi nhật ký riêng biệt (ví dụ) một công việc cron được chứa trong dự án Rails, để tránh 'gây ô nhiễm' nhật ký Rails tiêu chuẩn. Trong trường hợp này, hãy đảm bảo bạn sử dụng 'ActiveSupport :: BufferedLogger.new' thay vì chỉ' Logger.new'. Tôi đã thử nó và nó không hoạt động. – Lambart