Disabling echo from webrick
Asked Answered
R

1

16

How can I disable messages from webrick echoed on to the terminal? For the INFO messages that appear at the beginning, I was able to disable it by setting the Logger parameter so as:

s = WEBrick::HTTPServer.new(
  Port: 3000,
  BindAddress: "localhost",
  Logger: WEBrick::Log.new("/dev/null"),
)

But I further want to disable the messages that look like:

localhost - - [17/Jun/2011:10:01:38 EDT] "GET .... HTTP/1.1" 200 0 http://localhost:3000/ -> .....

when a request is made from the web browser.

Ragi answered 17/6, 2011 at 14:10 Comment(3)
Try setting AccessLog to false in the config parameters, that is as far as I can see by the source code.Sentinel
@Yet Another Geek I tried both setting it to false, then to nil, but it did not work.Ragi
@Yet Another Geek. When I set it to [nil, nil], it worked. Your link helped. Thanks.Ragi
R
24

Following the link to the source and suggestion provied by Yet Another Geek, I was able to figure out a way. Set the AccessLog parameter to [nil, nil] [] (Changed following suggestion by Robert Watkins).

s = WEBrick::HTTPServer.new(
  Port: 3000,
  BindAddress: "localhost",
  Logger: WEBrick::Log.new("/dev/null"),
  AccessLog: [],
)
Ragi answered 17/6, 2011 at 15:45 Comment(3)
Actually, you're better off passing an empty array for the AccessLog - e.g. AccessLog: [] Passing in nils just results in an error, which you can't see because you've sent your error logs to /dev/nullSinciput
Use Logger: WEBrick::Log.new(File.open(File::NULL, 'w')) for a cross-platform solutionTedman
For Rails edited boot.rb: github.com/rails/rails/issues/28968#issuecomment-327099731Sarcophagus

© 2022 - 2024 — McMap. All rights reserved.