# 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

Logger::Severity

## Public Class methods

new(appname = nil)

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

start()

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

set_log(logdev, shift_age = 0, shift_size = 102400)

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

log=(logdev)

[Source]

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

level=(level)

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]