In: |
logger.rb
|
Parent: | Object |
DESCRIPTION
Application -- Add logging support to your application.
USAGE
1. Define your application class as a sub-class of this class. 2. Override 'run' method in your class to do many things. 3. Instanciate it and invoke 'start'.
EXAMPLE
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
appname | [R] | |
logdev | [R] |
SYNOPSIS
Application.new(appname = '')
ARGS
appname Name String of the application.
DESCRIPTION
Create an instance. Log device is STDERR by default.
# File logger.rb, line 502 def initialize(appname = nil) @appname = appname @log = Logger.new(STDERR) @log.progname = @appname @level = @log.level end
SYNOPSIS
Application#start
DESCRIPTION
Start the application.
RETURN
Status code.
# File logger.rb, line 518 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
SYNOPSIS
Application#set_log(log, shift_age, shift_size)
ARGS
(Args are explained in the class Logger)
DESCRIPTION
Set the log device for this application.
# File logger.rb, line 540 def set_log(logdev, shift_age = 0, shift_size = 102400) @log = Logger.new(logdev, shift_age, shift_size) @log.progname = @appname @log.level = @level end