# Temporaly silencing the rails log

**URL:** <https://www.ruby-forum.com/t/temporaly-silencing-the-rails-log/120405>\
**Category:** Rails\
**Created:** [November 16, 2007, 4:14pm UTC](https://www.ruby-forum.com/t/temporaly-silencing-the-rails-log/120405 "2007-11-16T16:14:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![emmanueloga](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecae2f/32.png) [@emmanueloga](https://www.ruby-forum.com/u/emmanueloga)\
**Post date:** [November 16, 2007, 4:14pm UTC](https://www.ruby-forum.com/t/temporaly-silencing-the-rails-log/120405/1 "2007-11-16T16:14:24Z")

</div>

Hi! I want to do what subject say. Is there any elegant way to do this:  
???

# Silence the log inside the block attached to the method call.

def silence\_logger  
orig= nil

ObjectSpace.each\_object(::Logger) do |logger|  
logger.info “-” \* 80  
logger.info “Quieting the log…”  
orig= logger.level  
logger.level= ::Logger::FATAL  
end

yield

ObjectSpace.each\_object(::Logger) do |logger|  
logger.level= orig  
logger.info “Log is alive again!”  
logger.info “-” \* 80  
end  
end

silence\_logger do  
something  
end

Thanks!!!

---

<div class="post-metadata">

**Author:** ![emmanueloga](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ecae2f/32.png) [@emmanueloga](https://www.ruby-forum.com/u/emmanueloga)\
**Post date:** [November 16, 2007, 6:00pm UTC](https://www.ruby-forum.com/t/temporaly-silencing-the-rails-log/120405/2 "2007-11-16T18:00:05Z")

</div>

logger.silence do

# your code here

end

[http://wiki.rubyonrails.org/rails/pages/HowtoSelectivelySuppressLogging](http://wiki.rubyonrails.org/rails/pages/HowtoSelectivelySuppressLogging)
