Object
Application – Add logging support to your application.
Define your application class as a sub-class of this class.
Override 'run' method in your class to do many things.
Instantiate it and invoke 'start'.
class FooApp < Application
def initialize(foo_app, application_specific, arguments)
super('FooApp') # Name of the application.
end
def run
...
log(WARN, 'warning', 'my_method1')
...
@log.error('my_method2') { 'Error!' }
...
end
end
status = FooApp.new(....).start
Application.new(appname = '')
appname
Name of the application.
Create an instance. Log device is STDERR by default. This
can be changed with set_log.
# File logger.rb, line 662
def initialize(appname = nil)
@appname = appname
@log = Logger.new(STDERR)
@log.progname = @appname
@level = @log.level
end
Set the logging threshold, just like Logger#level=.
# File logger.rb, line 714
def level=(level)
@level = level
@log.level = @level
end
See Logger#add. This
application's appname is used.
# File logger.rb, line 722
def log(severity, message = nil, &block)
@log.add(severity, message, @appname, &block) if @log
end
Sets the logger for this application. See the class Logger for an explanation.
# File logger.rb, line 693
def logger=(logger)
@log = logger
end
Sets the log device for this application. See Logger.new for
an explanation of the arguments.
# File logger.rb, line 701
def set_log(logdev, shift_age = 0, shift_size = 1024000)
@log = Logger.new(logdev, shift_age, shift_size)
@log.progname = @appname
@log.level = @level
end
Start the application. Return the status code.
# File logger.rb, line 672
def start
status = -1
begin
log(INFO, "Start of #{ @appname }.")
status = run
rescue
log(FATAL, "Detected an exception. Stopping ... #{$!} (#{$!.class})\n" << $@.join("\n"))
ensure
log(INFO, "End of #{ @appname }. (status: #{ status.to_s })")
end
status
end