Logger::Application (Class)

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

Methods

level=   log=   new   set_log   start  

Attributes

appname  [R] 
logdev  [R] 

Included Modules

Public Class methods

SYNOPSIS

  Application.new(appname = '')

ARGS

  appname Name String of the application.

DESCRIPTION

  Create an instance.  Log device is STDERR by default.

[Source]

# File logger.rb, line 502
    def initialize(appname = nil)
      @appname = appname
      @log = Logger.new(STDERR)
      @log.progname = @appname
      @level = @log.level
    end

Public Instance methods

SYNOPSIS

  Application#start

DESCRIPTION

  Start the application.

RETURN

  Status code.

[Source]

# 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.

[Source]

# 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

[Source]

# File logger.rb, line 546
    def log=(logdev)
      set_log(logdev)
    end

SYNOPSIS

  Application#level=(severity)

ARGS

  level   Severity threshold.

DESCRIPTION

  Set severity threshold.

[Source]

# File logger.rb, line 560
    def level=(level)
      @level = level
      @log.level = @level
    end

[Validate]