I’ve got a simple controller which is being hit every minute to monitor
the website. I’ve read in a few places, and on this group as well that
if you include a logger.silence around the code, it shouldn’t appear in
the log. With the controller below, I get log entries every time the
action is called. I’m just wondering what I may be doing wrong.
Thanks.
CONTROLLER:
class MonitController < ActionController::Base
session :off
this is used by the monitoring scripts to see if the mongrel is up
and running
def index
logger.silence do
render :text => ‘success’
end
end
end
LOG OUTPUT:
Processing MonitController#index (for 127.0.0.1 at 2007-01-23 12:18:45)
[GET]
Parameters: {“action”=>“index”, “controller”=>“monit”}
Completed in 0.00349 (286 reqs/sec) | Rendering: 0.00007 (2%) | DB:
0.00000 (0%) | 200 OK [http:// /monit/index]
Just wondering if any solution was found for this - I’m in exactly the
same position, looking to suppress Monit actions from appearing in my
log. Wrapping the action in logger.silence seems to have no effect,
nor does forcibly increasing the logger.level to try and filter it
out.
I’m on Rails 1.1.6 - is it perhaps a 1.2+ thing only?
Cheers,
Mike
Doesn’t appear to be (even in 1.2+), other than monkey patching
ActionController::Base#log_processing for your needs.
If you’re doing this to see if Mongrel is up, why not write a simple
handler and place it in config/mongrel.conf? This won’t get logged
anywhere, and is way faster than going to rails for it:
lib/monit_handler.rb
class MonitHandler < Mongrel::HttpHandler
def process(request, response)
response.start { |head, out| out.write(“I’m up…”) }
end
end
config/mongrel.conf
uri “/monit”, :handler => MonitHandler.new
Then in your production scripts, you need to pass in an extra switch
to mongrel so it’ll use config/mongrel.conf. If you’re using mongrel
cluster, add:
config_script: config/mongrel.conf
to your config/mongrel_cluster.yml
I did find a way around it. Putting a def logger end in the controller
short circuits the logger from running and nothing is ever written to
the log files. This has also had the added benefit of removing a large
amount of memory usage for my application over time.
Also, I thought about going the mongrel handler route, but this works
for now.
CONTROLLER:
class MonitController < ActionController::Base
session :off
this is used by the monitoring scripts to see if the mongrel is
up and running
def index
end
def logger
end
end