简体   繁体   中英

Message/logging from Thin

How can I stop Rack Thin from returning initial messages of the following type?

>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> istening on 0.0.0.0:3000, CTRL+C to stop

I am using it like this:

Rack::Handler::Thin.run(Rack::Builder.new do
    map("/resource/"){run(Rack::File.new("/"))}
    map("/") do
        run(->env{
            h = Rack::Utils.parse_nested_query(env["QUERY_STRING"])
            [200, {},[routine_to_generate_dynamic_content(h)]]
        })
    end
end, Port: 3000)

Looks like the initial messages are coming from Thin . As per their Github Issue #31, Disabling all logging , you can add Thin::Logging.silent = true before the rest of the code to silence the initial messages.

However, this will also silence all other messages from the Thin adapter. A glance at the source says these other messages will also be silenced:

  • Waiting for n connection(s) to finish, can take up to n sec, CTRL+C to stop now
  • Stopping ...
  • !! Ruby 1.8.5 is not secure please install cgi_multipart_eof_fix:
    gem install cgi_multipart_eof_fix

Hope this helps!

Those messages does not come from rack, they come from thin: https://github.com/macournoyer/thin/blob/master/lib/thin/server.rb#L150 You can set the logging preferences according to this: https://github.com/macournoyer/thin/blob/master/lib/thin/logging.rb Thin::Logging.silent = true, but do you really want to silence all? Maybe direct it to a log file instead of stdout?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM