Tôi có một webservice Sinatra :: Base mà tôi muốn bắt đầu từ một chương trình của Ruby dòng lệnh, vì vậy tôi có điều này:Làm thế nào để âm thầm bắt đầu Sinatra + Thin?
# command line program file
require 'mymodule/server'
puts "Running on 0.0.0.0:4567, debugging to STDOUT..."
MyModule::Server.run! bind: '0.0.0.0', port: 4567, environment: :production
này hoạt động như mong đợi nhưng nó ném ra:
$ myscript
Running on 0.0.0.0:4567, debugging to STDOUT...
== Sinatra/1.3.1 has taken the stage on 4567 for production with backup from Thin
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop
127.0.0.1 - - [23/Dec/2011 18:44:55] "POST /images HTTP/1.1" 200 360 0.0133
...
Và tôi muốn nó im lặng, và hãy để tôi sản xuất những gì tôi muốn. Ví dụ, nếu tôi bắt đầu nó không daemonized Tôi muốn chỉ thấy một số thông điệp từ chương trình dòng lệnh và dữ liệu ghi nhận, một cái gì đó như:
$ myscript
Running on 0.0.0.0:4567, debugging to STDOUT...
127.0.0.1 - - [23/Dec/2011 18:44:55] "POST /images HTTP/1.1" 200 360 0.0133
...
Cũng muốn âm thầm tắt nó, ẩn:
== Sinatra has ended his set (crowd applauds)
Một câu hỏi cuối cùng, đây có phải là lựa chọn tốt nhất để bắt đầu ứng dụng Sinatra với mỏng từ bên trong mã ứng dụng (kịch bản ruby trong trường hợp này) không?
Vô hiệu hóa': logging' không làm việc cho tôi. – Nakilon
Nếu sử dụng SinatraBase, bạn phải làm điều đó bên trong khai báo lớp ... http://www.sinatrarb.com/intro.html#Sinatra::Base%20-%20Middleware,%20Libraries,%20and%20Modular%20Apps – GroovyCakes
Bạn cũng có thể thử cài đặt bật/tắt kiểu tùy chọn – GroovyCakes