2012-04-28 19 views
6

Gần đây tôi đã bắt đầu sử dụng oink gem trên ứng dụng myoku của mình vì tôi nhận thấy một rò rỉ bộ nhớ nhỏ với một số thao tác điều khiển. Lệnh oink logs hoạt động tốt tại địa phương nhưng tôi không thể tìm ra lệnh để làm cho nó hoạt động trên trang web sản xuất của tôi.lệnh oink logs không hoạt động trên heroku

Dưới đây là các lệnh Tôi đang cố gắng:

heroku run oink /log/* 

Và đây là dòng từ tập tin production.rb tôi:

config.middleware.use(Oink::Middleware, :logger => Rails.logger) 

Mở cài đặt cục bộ của tôi ỉn được lưu trữ các bản ghi trong file /log/oink.log.

Trả lời

-1

Hãy thử

heroku run bundle exec oink log/* 
+0

Một điều chỉnh kỹ thuật: 'Heroku log chạy bó exec ỉn/\ *', nếu không thì splat được giải thích tại địa phương, gây ra các đường dẫn để log địa phương của bạn các tệp được chuyển tới heroku. Điều đó nói rằng, lệnh này vẫn không xuất hiện để làm việc kể từ khi Heroku không thực sự lưu trữ các tập tin đăng nhập trên đĩa. –

-1

Để phân tích nhật ký sản xuất của bạn, bạn sẽ cần phải chạy

heroku run bundle exec oink log/production.log 
1

Đây là một phản ứng từ hỗ trợ Heroku:

"Trong hầu hết các trường hợp sử dụng ỉn tại địa phương là đủ để hiểu các vấn đề sử dụng bộ nhớ Hệ thống tập tin của Heroku là tạm thời và mỗi dyno có hệ thống tập tin riêng biệt của nó, vì vậy nó không phải là rất thực tế để viết và lấy các tập tin.Nếu bạn có thể confi gure Oink để ghi vào stdout hoặc đường ray của bạn logger thông điệp của nó sẽ hiển thị trong nhật ký Heroku của bạn và bạn có thể sử dụng log drain hoặc tiện ích lưu trữ nhật ký như Papertrail để lấy bản sao cục bộ của chúng. "

Vì vậy, có vẻ như họ đang đề xuất sử dụng nó trong quá trình phát triển. Hoặc nếu bạn có thể viết để stdout và sau đó đăng nhập cống chúng mình vào đúng định dạng.

Tôi không thể tìm ra thông báo ngắn, vì vậy tôi đã sử dụng đá quý heroku-api để tự động khởi động lại máy chủ ứng dụng vài giờ một lần từ công việc cron. Điều này làm việc như một sửa chữa tạm thời.

2

Dưới đây là câu trả lời: https://stackoverflow.com/a/14145299/1684322

Điều quan trọng để sử dụng Hodel3000CompliantLogger thay vì Rails.logger khác ỉn sẽ thất bại log phân tích cú pháp là. Nó cũng có thể được cấu hình không config/môi trường/production.rb nhưng ví dụ như trong config/initializers/oink.rb

YourApplication::Application.middleware.use(Oink::Middleware, :logger => Hodel3000CompliantLogger.new(STDOUT), :instruments => :memory) 

Điều này sẽ làm ỉn viết để mặc định tập tin mà sau này có thể được chụp bởi

đăng nhập
heroku logs -n500 --app app_name > logfile_for_oink 

Hoặc sử dụng công cụ quản lý nhật ký khác như PaperTrail hoặc thiết lập thoát syslog (rsyslog trên hộp * nix khác).

Sử dụng ỉn với --threshold = 0 để hiển thị tất cả các mục

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