Module: LogSwitch
- Defined in:
- lib/log_switch.rb,
lib/log_switch/version.rb
Overview
LogSwitch allows for extending a class/module with a logger and, most importantly, allows for turning off logging programmatically. See the README.rdoc
for more info.
Constant Summary collapse
- VERSION =
'0.2.0'
Instance Attribute Summary collapse
-
#log(message, level = log_level) ⇒ Object
Logs a message using the level provided.
-
#log_level ⇒ Symbol
The current default log level.
-
#logger ⇒ Object
Defaults to a
Logger
writing to STDOUT.
Instance Method Summary collapse
-
#before(&block) ⇒ Object
#log
calls the block given to this method before it logs every time. -
#log? ⇒ Boolean
Tells whether logging is turned on or not.
-
#reset_config! ⇒ Object
Sets back to defaults.
Instance Attribute Details
#log(message, level = log_level) ⇒ Object
Logs a message using the level provided. If no level provided, use @log_level.
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/log_switch.rb', line 49 def log(, level=log_level) @before_block.call unless @before_block.nil? yield if block_given? if log? if .respond_to? :each_line .each_line { |line| logger.send level, line.chomp } else logger.send(level, ) end end end |
#log_level ⇒ Symbol
Returns The current default log level. Starts off as :debug.
29 30 31 |
# File 'lib/log_switch.rb', line 29 def log_level @log_level ||= :debug end |
#logger ⇒ Object
Defaults to a Logger
writing to STDOUT.
21 22 23 |
# File 'lib/log_switch.rb', line 21 def logger @logger ||= ::Logger.new STDOUT end |
Instance Method Details
#before(&block) ⇒ Object
#log
calls the block given to this method before it logs every time. This, thus, acts as a hook in the case where you want to make sure some code gets executed before you log a message. Useful for making sure a file exists before logging to it.
40 41 42 |
# File 'lib/log_switch.rb', line 40 def before(&block) @before_block = block end |
#log? ⇒ Boolean
Tells whether logging is turned on or not.
13 14 15 |
# File 'lib/log_switch.rb', line 13 def log? @log != false end |
#reset_config! ⇒ Object
Sets back to defaults.
63 64 65 66 67 |
# File 'lib/log_switch.rb', line 63 def reset_config! self.log = true self.logger = ::Logger.new STDOUT self.log_level = :debug end |