Class: PEROBS::ILogger
- Inherits:
-
Monitor
- Object
- Monitor
- PEROBS::ILogger
- Includes:
- Singleton
- Defined in:
- lib/perobs/Log.rb
Overview
The ILogger class is a singleton that provides a common logging mechanism to all objects. It exposes essentially the same interface as the Logger class, just as a singleton and extends fatal to raise an FatalError exception.
Constant Summary collapse
- @@options =
Default options to create a logger. Keep 4 log files, each 1MB max.
[ 4, 2**20 ]
- @@level =
Logger::INFO
- @@formatter =
proc do |severity, time, progname, msg| "#{time} #{severity} #{msg}\n" end
- @@logger =
nil
Instance Method Summary collapse
-
#fatal(msg, &block) ⇒ Object
Print an error message via the Logger and raise a Fit4Ruby::Error.
-
#formatter=(f) ⇒ Object
Set Logger formatter.
-
#level=(l) ⇒ Object
Set log level.
-
#method_missing(method, *args, &block) ⇒ Object
Pass all calls to unknown methods to the @@logger object.
-
#open(io) ⇒ Object
Redirect all log messages to the given IO.
-
#options=(o) ⇒ Object
Set Logger options.
-
#respond_to?(method, include_private = false) ⇒ Boolean
Make it properly introspectable.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
Pass all calls to unknown methods to the @@logger object.
93 94 95 |
# File 'lib/perobs/Log.rb', line 93 def method_missing(method, *args, &block) @@logger.send(method, *args, &block) end |
Instance Method Details
#fatal(msg, &block) ⇒ Object
Print an error message via the Logger and raise a Fit4Ruby::Error. This method should be used to abort the program in case of program logic errors.
105 106 107 108 |
# File 'lib/perobs/Log.rb', line 105 def fatal(msg, &block) @@logger.fatal(msg, &block) raise FatalError, msg end |
#formatter=(f) ⇒ Object
Set Logger formatter.
69 70 71 |
# File 'lib/perobs/Log.rb', line 69 def formatter=(f) @@formatter = f end |
#level=(l) ⇒ Object
Set log level.
63 64 65 |
# File 'lib/perobs/Log.rb', line 63 def level=(l) @@level = l end |
#open(io) ⇒ Object
Redirect all log messages to the given IO.
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/perobs/Log.rb', line 81 def open(io) begin @@logger = Logger.new(io, *@@options) rescue IOError => e @@logger = Logger.new($stderr) $stderr.puts "Cannot open log file: #{e.}" end @@logger.level = @@level @@logger.formatter = @@formatter end |
#options=(o) ⇒ Object
Set Logger options
75 76 77 |
# File 'lib/perobs/Log.rb', line 75 def (o) @@options = o end |
#respond_to?(method, include_private = false) ⇒ Boolean
Make it properly introspectable.
98 99 100 |
# File 'lib/perobs/Log.rb', line 98 def respond_to?(method, include_private = false) @@logger.respond_to?(method) end |